内置的Camcorder App(就像HTC EVO上的那个一样)似乎仅在预览图像更改时才调用camera.autoFocus()
。如果稳固握住相机,则不会出现camera.autoFocus()
。
我想在camera.startPreview()
处于 Activity 状态时复制此行为,如下面的初始预览设置代码所示:
camera = camera.open();
Camera.Parameters parameters = camera.getParameters();
List<String> focusModes = parameters.getSupportedFocusModes();
if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
{
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
}
camera.setParameters(parameters);
camera.setPreviewDisplay(holder);
camera.startPreview();
我为
autoFocus()
找到的所有示例似乎都是每500毫秒至2000毫秒调用一次,或者在拍摄照片或开始录制之前立即调用一次。EVO便携式摄像机应用程序似乎使用传感器或算法来触发
autoFocus()
。但是,完成此autoFocus()
触发器后,它的工作异常出色。是否有人知道在需要时如何按需触发autoFocus()
,例如将相机移近或远离主体或稍微摇动时如何触发ojit_code?谢谢,
格里
最佳答案
自API级别9( Gingerbread )以来,Android引入了continuous auto focus。它比定期调用Camera.autoFocus更好。