当前位置:  开发笔记 > 编程语言 > 正文

创建摄像机视图后,Android自动对焦功能无效

如何解决《创建摄像机视图后,Android自动对焦功能无效》经验,为你挑选了2个好方法。



1> Chris..:

如果你添加到你的清单,它并不意味着相机会autofocus.这意味着您允许您的应用程序使用相机硬件或处理自动对焦的软件.

声明的目的是通知任何外部实体您的应用程序所依赖的硬件和软件功能集.

要将相机设置为焦点,可以将此方法添加到您的CameraView班级:

private void setFocus(String mParameter) {
    Camera.Parameters mParameters = mCamera.getParameters();
    mParameters.setFocusMode(mParameter);
    mCamera.setParameters(mParameters);
}

然后surfaceChanged()像这样调用此方法:

public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {

    ...//your code here

    // Set focus mode to continuous picture
    setFocus(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);

    // Start camera preview
    mCamera.startPreview();

}

你可以选择focus parameters:

String FOCUS_MODE_AUTO自动对焦模式.

String FOCUS_MODE_CONTINUOUS_PICTURE用于拍摄照片的连续自动对焦模式.

String FOCUS_MODE_CONTINUOUS_VIDEO用于视频录制的连续自动对焦模式.

String FOCUS_MODE_EDOF扩展景深(EDOF).

字符串FOCUS_MODE_FIXED焦点是固定的.

String FOCUS_MODE_INFINITY焦点设置为无穷大.

String FOCUS_MODE_MACRO宏(特写)对焦模式.



2> 小智..:
//set camera to continually auto-focus
Camera.Parameters params = c.getParameters();
//*EDIT*//params.setFocusMode("continuous-picture");
//It is better to use defined constraints as opposed to String, thanks to AbdelHady
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE);
c.setParameters(params);

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有