android – 在Galaxy S5上遇到FOCUS_MODE_CONTINUOUS_PICTURE问题

我正在开发一款使用相机预览和拍照的 Android应用.我对星系S4使用FOCUS_MODE_CONTINUOUS_PICTURE,发现聚焦效果非常好.

但是,在星系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());
  }
}

请试一试并报告您的结果

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...