SurfaceView和自动对焦

时间:2014-08-03 01:37:06

标签: android android-camera surfaceview autofocus

我正在编写一个应用程序,我需要在图层中显示凸轮正在查看的内容,因此我使用了surfaceView / surfaceHolder的基本代码。我的问题是我想启用自动对焦,但是我在网上寻找解决方案我还不知道如何实现它。我已经看到android有一个参数,所以我把它放在surfaceCreated方法中,你可以看到,但它没有任何区别。令我惊讶的是我的手机包含focus_mode_auto,但这个解决方案并不起作用。任何的想法?我想使用min sdk = 9,所以避免实现api 14/15。

@Override
public void surfaceCreated(SurfaceHolder holder) {
    // TODO Auto-generated method stub
    camera = Camera.open();
    Camera.Parameters parameters = camera.getParameters();
    List<String> focusModes = parameters.getSupportedFocusModes();
    // I have also tried with FOCUS_MODE_CONTINUOUS_VIDEO
    if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
    {
        parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
    }
    parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
    camera.setParameters(parameters);
    setCameraDisplayOrientation(this, CameraInfo.CAMERA_FACING_BACK, camera);
}

注意:我确实有

<uses-feature android:name="android.hardware.camera.autofocus" />
清单中的

如果我做一个处理程序每​​秒聚焦它会聚焦图像,但是当它被调用时,首先你可以看到图像失去焦点,然后它就会获得它,因此非常烦人。

0 个答案:

没有答案