我正在开发一个使用相机预览和拍照的 Android 应用程序。我用FOCUS_MODE_CONTINUOUS_PICTURE
使用 Galaxy S4,发现对焦效果非常好。
然而,在 Galaxy S5 上FOCUS_MODE_CONTINUOUS_PICTURE
很少能正确找到焦点。相机将放大焦点,但随后会反复缩小焦点。
有谁知道为什么FOCUS_MODE_CONTINUOUS_PICTURE
在 S5 上效果很差,或者有人可以确认他们是否有同样的问题吗?
我也经历过这些同样的问题。
Galaxy S5 以及可能的其他设备在连续图片对焦模式下似乎没有可靠的行为。作为开发人员,这非常令人沮丧,因为代码在大多数设备上都能完美运行,但随着 S5(一种非常流行的设备)的出现,我们看起来很糟糕。
经过一番绞尽脑汁后,我认为我有一个运行良好的解决方案(更多的是解决方法)。
- 将相机设置为 FOCUS_MODE_CONTINUOUS_PICTURE
- 在拍照的手势处理程序中(例如按钮点击、触摸事件),将相机切换到 FOCUS_MODE_AUTO,然后以延迟方式调用 Camera.autoFocus()
这在照片预览期间提供了漂亮的连续对焦 UI,但以可靠的自动对焦模式拍摄照片。
这是代码:
protected void onTakePicture()
{
// mCamera is the Camera object
// mAutoFocusCallback is a Camera.AutoFocusCallback handler
try
{
// determine current focus mode
Camera.Parameters params = mCamera.getParameters();
if (params.getFocusMode().equals(Camera.Parameters.FOCUS_MODE_CONTINUOUS_PICTURE))
{
mCamera.cancelAutoFocus(); // cancels continuous focus
List<String> lModes = params.getSupportedFocusModes();
if (lModes != null)
{
if (lModes.contains(Camera.Parameters.FOCUS_MODE_AUTO))
{
params.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); // auto-focus mode if supported
mCamera.setParameters(params); // set parameters on device
}
}
// start an auto-focus after a slight (100ms) delay
new Handler().postDelayed(new Runnable() {
public void run()
{
mCamera.autoFocus(mAutoFocusCallback); // auto-focus now
}
}, 100);
return;
}
mCamera.autoFocus(mAutoFocusCallback); // do the focus, callback is mAutoFocusCallback
}
catch (Exception e)
{
Log.e("myApp", e.getMessage());
}
}
请尝试一下并报告您的结果
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)