`
crazysumer
  • 浏览: 49988 次
社区版块
存档分类
最新评论

【2013.07.17】自定义相机对焦框等

 
阅读更多

1.

好开心,自定义相机的对焦框出来了,虽然感觉有点蛋筒。之前也想用画图画的 ,可是因为蛋筒的数据传递问题抛弃了自定义SurfaceView,在Acivity中不能override onDraw方法,暂时不知道可行性。

 

所以采取的方式是,在相机预览的界面的点击位置显示一个对焦框的图片。这个图片位置的设定,没有直接的通过中心点坐标设置的方法,只能绕道,获得触摸点坐标后,设置图片的Margin。

 

ViewGroup.MarginLayoutParams 中有setMargins(int left, int top, int right, int bottom)方法

 

可以设置控件在界面上的上下左右margin。

 

我要动态显示的ImageView在一个LinearLayout中的FrameLayout中,所以给ImageView设置Parameters的时候用到

FrameLayout.LayoutParams

 

关键的代码

	/**
	 * @描述 自动对焦
	 * */
	AutoFocusCallback autoFocus = new AutoFocusCallback() {
		

		@Override
		public void onAutoFocus(boolean success, Camera camera) {

			if (success) {
				ViewGroup.MarginLayoutParams margin = new ViewGroup.MarginLayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
				margin.setMargins((int)(x-46.5), (int)(y-46.5), 0, 0);
				FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(
						margin);
				focus.setLayoutParams(params);
				System.out.println(focus.getLayoutParams().getClass());
				focus.setVisibility(ImageView.VISIBLE);
				/*
				 * 2秒后,自动对焦框消失
				 * */ 
				Handler timeHandler = new Handler();
				timeHandler.post(new Runnable() {

					@Override
					public void run() {
						try {
							Thread.sleep(2000);
							if (0 == focus.getVisibility()) {
								focus.setVisibility(ImageView.GONE);
							}
						} catch (InterruptedException e) {
							e.printStackTrace();
						}

					}
				});
			}
		}

	};

 

 

2. 拍完照后,在当前界面有一个ScrollView对已经拍摄的照片的缩略图的展示,怎样让那个ScrollView每次滚动到当前拍摄的界面呢。当然用到ScrollView的smoothScrollTo(int x, int y)方法,把它放到一个Runnable中去执行。

每个ImageView都有自己的高度,记录ImageView的个数,x=0,y=ImageView的高度×ImageView的个数。

感谢eoe某用户 吻

 

关键代码

	Handler smoothHandler = new Handler();
				smoothHandler.post(new Runnable() {

					@Override
					public void run() {
						int offset = iv.getMeasuredHeight()
								* photoPromts.length;
						if (offset < 0) {
							offset = 0;
						}
						scrollView.smoothScrollTo(0, offset);
					}
				});

 

 

3.在ScrollView中有一个LinearLayout,在这个LinearLayout中才是多个ImageView,怎样给这些ImageView设置监听,能够在点击他们时可以预览大图呢。直接给它setOnclickListener就可以了,只不过我这里的ImageView是final类型,会报

The final local variable iv cannot be assigned, since it is defined in an enclosing type 编译错。

就再定义一个ImageView去代表它

分享到:
评论

相关推荐

    Android实现自定义照相机

    在Android平台上,自定义相机是一项常见的功能,它允许开发者根据特定需求定制相机界面和功能,以提供更加个性化和丰富的用户体验。下面将详细讲解如何在Android中实现自定义相机。 首先,你需要创建一个新的`...

    6.如何为应用程序自定义快捷键?(Visual C++编程 源代码)

    6.如何为应用程序自定义快捷键?(Visual C++编程 源代码)6.如何为应用程序自定义快捷键?(Visual C++编程 源代码)6.如何为应用程序自定义快捷键?(Visual C++编程 源代码)6.如何为应用程序自定义快捷键?...

    Android 自定义相机开发(支持前置,后置摄像头,可以自动聚焦,保存和显示图片)

    本教程将深入探讨如何创建一个支持前置和后置摄像头切换、自动对焦以及保存和显示图片的自定义相机应用。 首先,我们需要在AndroidManifest.xml文件中添加必要的权限,以访问相机和存储设备: ```xml ...

    Android代码-Android自定义相机实现身份证拍照,并加入自动对焦与图片不规则裁剪

    Android自定义身份证相机-IDCardCamera 效果图: 功能特点 自定义相机界面 支持开启闪光灯 支持手动触摸屏幕对焦 支持自动对焦 支持图片自动裁剪 支持图片手动不规则裁剪 2 使用 Step 1. 添加JitPack仓库 在...

    EDA_BOMHelper V2013.10.10原版

    EDA_BOMHelper V2013.10.10原版软件,可以用和谐补丁。支持32位系统。

    W3School离线手册(2015.07.17)

    W3School离线手册(2015.07.17) W3School离线手册更新: 该文档为本人于2015年7月17日下午从W3School官网下载整理制作的CHM电子书文档。 1)要是有些人碰到chm打开空白的(因为chm未解锁,通常可以打开chm但显示无法...

    ICSharpCode.TextEditor如何自定义代码折叠和高亮

    2. **折叠策略**:通过编写自定义折叠策略,可以分析代码的语法结构,识别出函数、类、块等结构,并设置为可折叠。这需要对解析器和编辑器API有深入的理解。 3. **API调用**:使用`ICSharpCode.TextEditor.Document...

    fastReport 2013.2.5 for netframework 4

    【fastReport 2013.2.5 for .NET Framework 4】是适用于Microsoft .NET Framework 4.0环境的报表开发工具。FastReport是一款功能强大的报表引擎,旨在简化和加速应用程序中的报告生成过程。它允许开发者在Windows ...

    pfyyi.rar_beyonduph_自定义控件_进程与线程

    在Windows编程中,自定义控件是开发者根据需求创建的独特用户界面元素,它们通常由基本的系统控件(如按钮、编辑框等)进行扩展或完全自定义绘制。在这个项目中,`V85CustomTabCtrlDemo`可能是一个示例应用程序,...

    fer2013.tar.gz

    人脸表情识别 表情识别fer2013数据集,将图片从一个文件中提取成一张一张的图片,包含以下几种表情: 0 anger 生气 1 disgust 厌恶 2 fear 恐惧 3 happy 开心 4 sad 伤心 5 surprised 惊讶 6 normal 中性

    Android自定义相机实现自动对焦和手动对焦

    总之,Android自定义相机功能的实现涉及多个步骤,包括初始化相机、设置参数、处理对焦、拍照和释放资源。自动对焦相对简单,而手动对焦则需要更巧妙的处理。务必测试不同设备上的表现,因为相机硬件和实现可能会...

    Android开发 RxPermissions使用以及自定义相机拍照demo

    本文将深入探讨如何在Android项目中集成`RxPermissions`库,并通过一个自定义相机拍照的示例来演示其实际应用。 首先,让我们了解`RxPermissions`。它是基于RxJava的一个库,提供了一种简单的方法来请求和检查...

    FastReport.Net V2013.2.5 For .Net4.0(绿色破解版)

    FastReport.Net V2013.2.5 For .Net4.0 绿色版本,不需要安装 已去除导出与打印5页限制,去除导出与打印所带的DEMOVERSION水印.

    Android照相机移动对焦例子

    在传统的数码相机中,移动对焦通过调整镜头位置来实现。而在智能手机中,由于空间限制,通常采用对比度检测自动对焦(Contrast Detection AF)或相位检测自动对焦(Phase Detection AF)。Android系统提供了API支持...

    SharePoint 2013 create custom list by vs 2013.rar

    在SharePoint 2013中,开发人员可以利用Visual Studio 2013创建自定义列表以满足特定业务需求。这个压缩包文件"SP2013CustomList"很可能包含了一个详细的步骤指南或者项目模板,帮助用户了解并实践如何通过VS2013来...

    Android中关于自定义相机预览界面拉伸问题

    在Android开发中,自定义相机预览界面的拉伸问题是一个常见的挑战,尤其是在处理不同设备和屏幕方向变化时。本文将深入探讨这个问题,并提供解决方案。 首先,理解问题的根本原因至关重要。当我们在Android应用中...

    对焦算法测试组图

    在IT行业中,对焦算法是图像处理和摄影技术中的一个重要组成部分,特别是在现代数码相机和智能手机摄像头的设计中。本文将深入探讨对焦算法及其测试方法,结合提供的“对焦算法测试组图”来阐述这一主题。 首先,...

    Aspose Total for NET 2013.08.13 最新破解(danny_su 大作)

    Aspose Total for NET 2013.08.13 最新破解,danny_su 大作,花了5个贡献分下载的了!

    奥维8种新版自定义地图包括Google地图.zip

    .ovmap文件是奥维互动地图特有的地图文件格式,它包含了地图数据、样式、标注等内容,使得用户可以加载并查看自定义的地图。在这个文件中,用户可以找到8种不同版本的自定义地图,这些地图可能在地图源、显示风格、...

Global site tag (gtag.js) - Google Analytics