Android 安卓相机:固定镜头焦距

Android 安卓相机:固定镜头焦距,android,android-camera,autofocus,Android,Android Camera,Autofocus,我正在开发一个Android应用程序,它具有与相机相关的功能 首先,我读了很多关于SO、XDA等的东西,然后请不要把我重定向到其他无用的帖子 我正在尝试实现类似“固定焦点模式”的功能,以便: 我使用焦点模式自动启动应用程序(或其他方式) 使物体在任意距离聚焦 确定当前焦点 将相机移动到另一个不对焦的对象上,移动距离不同 我尝试了不同的解决方案,即: AutoFocusCallback中的mCamera.cancelAutoFocus(),以防止对焦的调整 设置一个FocusArea:新的摄像头

我正在开发一个Android应用程序,它具有与相机相关的功能

首先,我读了很多关于SO、XDA等的东西,然后请不要把我重定向到其他无用的帖子

我正在尝试实现类似“固定焦点模式”的功能,以便:

  • 我使用
    焦点模式自动启动应用程序(或其他方式)
    
  • 使物体在任意距离聚焦
  • 确定当前焦点
  • 将相机移动到另一个不对焦的对象上,移动距离不同
  • 我尝试了不同的解决方案,即:

    • AutoFocusCallback
      中的mCamera.cancelAutoFocus()
    ,以防止对焦的调整
  • 设置一个
    FocusArea
    新的摄像头区域(新的Rect(-50,-50,50,50),1000)
    将焦点固定在当前区域上
  • 我的目标是API 20和三星Galaxy S5。在此设备上,支持的聚焦模式有: -自动的 -无穷大 -宏 -连续视频 -连续图像


    我经常发现的建议是重新编译Android…

    如果我理解,您希望焦点保持第一个对象的焦点。 在对焦第一个对象后,是否尝试将相机模式更改为
    FOCUS\u mode\u FIXED
    ? 就像这样:

    Camera.Parameters mParam = mCamera.getParameters();
    mParam.setFocusMode(Camera.Parameters.FOCUS_MODE_FIXED);
    mCamera.setParameters(mParam);
    
    “自动”模式并不意味着相机会持续对焦——只是当您调用“自动对焦”命令时,对焦会自动完成,而不会显示您期望的结果,如“宏”或“无限”


    因此,如果没有调用自动对焦的循环(许多示例都是这样做的,或者在回调中再次调用),则在运行一次后,您的对焦应该保持不变。

    是否要点击对焦?你能发布一些surfaceview类的代码吗?嗨。我在预览上方添加了一个按钮,理想情况下,该按钮必须从自动对焦模式切换到“固定对焦”模式,反之亦然。我的代码中没有任何有趣的东西,只是我不知道如何做,甚至不知道是否可能。你是如何执行聚焦的?“自动”模式并不意味着相机会持续对焦——只是当您调用“自动对焦”命令时,对焦会自动完成,而不会显示您期望的结果,如“宏”或“无限”。因此,如果没有调用自动对焦的循环(正如许多示例所做的或在回调中再次调用),则在运行一次后,您的对焦应该保持不变。@Raanan是对的-自动对焦应该完全满足您在这种情况下的需要。调用cancelAutoFocus()实际上会强制相机在我使用过的设备中重新对焦。我刚刚根据您的评论更改了代码。我在焦点模式下启动相机,然后将模式更改为焦点模式自动(使用屏幕上的专用按钮)。它似乎工作得很好。嗨,阿隆索,不幸的是,我的应用程序(S4和S5)的目标设备不支持聚焦模式。但是,此模式不会将其固定到当前焦点,而是固定到超焦距。