`
king_tt
  • 浏览: 2109760 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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);
		
	}


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics