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

【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.hardware.camera2自定义相机

    在Android平台上,`android.hardware.camera2`是官方提供的高级相机API,它提供了更精细的控制和更高的灵活性,使得开发者能够创建具有专业级别的自定义相机应用。这个API在Android 5.0(API级别21)引入,替代了...

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

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

    Intel Visual Fortran Composer XE 2013.lic

    《Intel Visual Fortran Composer XE 2013许可证书详解及Fortran 2013编程基础》 Intel Visual Fortran Composer XE 2013是一款由Intel公司推出的高性能计算开发工具,专为科学计算和工程应用设计。这款编译器提供...

    身份证拍照Android自定义相机

    这个功能不仅需要考虑相机的基本操作,如拍照、调整亮度等,还要包含特定的增强特性,如自动对焦和不规则图片裁剪,以确保身份证信息清晰且完整。下面,我们将详细探讨如何实现这样的功能。 首先,我们要创建一个...

    IBExpert 2013.2.20 单文件和谐版

    IBExpert 2013.2.20 单文件和谐版,谁用谁知道。

    fastReport 2013.2.5 for netframework 4

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

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

    发福利了,Aspose Total for NET 2013.09.10 最新破解,danny_su 大作,花了10个贡献分才下载的了!现免费提供大家:) This package contains the following .NET Components: - Aspose.BarCode for .NET v5.7.0.0 ...

    fer2013.tar.gz

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

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

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

    ios-关于相机的操作自定义相机,新增缩放,聚焦功能。.zip

    在iOS开发中,自定义相机是一项常见的需求,它允许开发者为用户提供更加个性化和功能丰富的拍照体验。本项目“ios-关于相机的操作自定义相机,新增缩放,聚焦功能”就是一个针对这一需求的示例实现。下面我们将详细...

    Android自定义相机所需文件.rar

    3. **布局设计**:描述中提到的“有个框”,可能指的是一个用于对准的取景框,这是自定义相机界面中常见的元素,通常是一个矩形或圆形,用来帮助用户确定拍摄范围。而“拍照按钮、确定按钮和取消按钮”则是基本的...

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

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

    对焦算法测试组图

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

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

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

    Telerik OpenAccess ORM 2013 Q1 2013.1.219

    ☆ 资料说明: ☆ Telerik OpenAccess ORM 2013 Q1 2013.1.219 此版本为开发版(零售版),无需序列号、无需破解;

    TextureView实现自定义相机预览、拍照

    在Android开发中,TextureView是一种可以显示视频流或者2D图形的视图组件,它非常适合用来实现自定义相机预览和拍照功能。本篇文章将详细探讨如何利用TextureView来实现这些功能,以及如何处理图像变形等问题。 ...

    安卓自定义简单相机

    而从Android 4.2 (API level 17)起,引入了Camera2 API,这是一个更强大、更灵活的接口,为开发者提供了更多自定义选项,如调整曝光、对焦、色彩效果等。 **一、创建相机预览** 1. **设置布局**: 在XML布局文件中...

    易语言源码易语言自定义高级表格边框样式例程.rar

    易语言源码易语言自定义高级表格边框样式例程.rar 易语言源码易语言自定义高级表格边框样式例程.rar 易语言源码易语言自定义高级表格边框样式例程.rar 易语言源码易语言自定义高级表格边框样式例程.rar 易语言...

    jQuery.dropdown.js插件实现超酷的自定义扇形排列下拉列表框动画特效源码.zip

    《jQuery.dropdown.js插件:构建超酷自定义扇形下拉列表框动画特效》 在网页设计中,下拉列表框是一种常见的交互元素,用于提供多个选项供用户选择。然而,传统的HTML `&lt;select&gt;` 元素往往样式单一,无法满足现代...

Global site tag (gtag.js) - Google Analytics