各种照片具有相同的焦点

时间:2013-09-20 12:56:45

标签: android camera

我需要拍摄几张相同焦距的照片。我有一段时间研究过,似乎不可能。

主要目的是进行简单的自动对焦,然后对所有下一张照片使用相同的距离,而不再调用自动对焦。

Android的API有一些有趣的方法,如:

FOCUS_MODE_FIXED

但是,我无法设置固定焦点的值。它设置在超焦距。

还有一种方法:

getFocusDistances (float[] output).

但是没有“设定者”来设定所需的焦距。

我能实现目标还是不可能?

PD:一些代码解释我如何设置Camera.parameters我如何管理AF:

    AutoFocusCallback aF = new AutoFocusCallback(){

      @Override
      public void onAutoFocus(boolean arg0, Camera arg1) {
          if(arg0==true){
              Log.d("preview", " Autofocus callback!"); 
              parameters.setFocusMode("fixed");
              updateParameters();
          }

      }};

public static void updateParameters(){
if(camera==null){}
else{
    camera.setParameters(parameters);

}

点击focusAutoButton时:

    @Override
        public void onClick(View v) {

             Preview.parameters.setFocusMode("auto");
             Log.d("focus: ","auto");
             Preview.updateParameters();
             Preview.camera.autoFocus(preview.aF);

        }});

1 个答案:

答案 0 :(得分:3)

详细信息因设备而异,但您应该可以将对焦模式设置为FOCUS_MODE_AUTO,然后拨打Camera.autoFocus()一次以设置焦距。除非您再次明确地呼叫autoFocus(),否则焦距不应改变。

请注意,某些设备不支持自动对焦,因此在请求时采取防御措施是个好习惯:

try {
     Parameters params = camera.getParameters();
     if (!Parameters.FOCUS_MODE_AUTO.equals(params.getFocusMode())) {
        params.setFocusMode(Parameters.FOCUS_MODE_AUTO);
        camera.setParameters(params);
     }
     camera.autoFocus(new Camera.AutoFocusCallback() {
        public void onAutoFocus(boolean success, Camera camera) {
           // if (success) { ... }
        }
     } );
  } catch (RuntimeException e) {
     // Can't use autofocus...
  }