Android开发 摄像头自动聚焦完美实现 --------------续上

http://blog.csdn.net/yanzi1225627/article/details/7926994前文已经实现了自动聚焦,但末尾遗留了一个小问题。经我研究发现,是我程序里面的自动聚焦所放的位置有问题。原来只在按下预览按钮,会执行initCamera,但当连续两次按预览后,程序就会没有入口了。也就是第二次if(myCamera!=null && !isView)是不满足的,第一次按预览之后,myCamera对象已经对创建,且isView=true,因此我增加了一个if判断这种情况。当myCamera创建后,且正在预览,如果这个时候再次按下预览,就会再次自动聚焦。源码如下:

	public void initCamera()
	{
		if(myCamera == null && !isView)
		{
			myCamera = Camera.open();
			Log.i(TAG, "camera.open");
		}
		if(myCamera != null && !isView) {
			try {
				
					myParameters = myCamera.getParameters();
					myParameters.setPictureFormat(PixelFormat.JPEG);
					myParameters.setPreviewSize(1280, 720);
					//myParameters.setFocusMode("auto");
					
					myParameters.setPictureSize(2048, 1152); //1280, 720
					
					myParameters.set("rotation", 90);
					myCamera.setDisplayOrientation(90);
					myCamera.setParameters(myParameters);
					myCamera.setPreviewDisplay(mySurfaceHolder);
					myCamera.startPreview();
					isView = true;
					myCamera.autoFocus(mAutoFocusCallback);
			
			} catch (Exception e) {
				// TODO: handle exception
				e.printStackTrace();
				Toast.makeText(TestPhotoActivity.this, "初始化相机错误",
						Toast.LENGTH_SHORT).show();
			}
		}
		if(myCamera != null && isView)
			myCamera.autoFocus(mAutoFocusCallback);
		
	}


 

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值