我正在编写一个应用程序,我需要在图层中显示凸轮正在查看的内容,因此我使用了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" />
清单中的如果我做一个处理程序每秒聚焦它会聚焦图像,但是当它被调用时,首先你可以看到图像失去焦点,然后它就会获得它,因此非常烦人。