解决方案 »

  1.   

    对焦这个问题,早期版本未能解决。安卓4.0新增的Camera类,有一个setFocusAreas方法可以设置焦距。早起SDK因为手机品种不齐,有些缺乏硬件支持,所以没有一个统一的对焦接口,新的SDK里已经出现了。
      

  2.   

    我设置了setFocusAreas,没有看到效果效果。代码如下:float x  = e.getRawX();
    float y  = e.getRawY();

    int rectX = (int) ((x-halfScreenwidth)/halfScreenwidth*1000);
    int rectY = (int) ((y-halfScreenHeight)/halfScreenHeight*1000);
    Camera.Parameters parameters = camera.getParameters();
    List<Camera.Area> areas = new ArrayList<Camera.Area>();
    areas.add(new Camera.Area(new Rect(rectX, rectY, rectX+10, rectY+10), 1000));
    parameters.setMeteringAreas(areas);
    camera.autoFocus(new AutoFocusCallback()
    { @Override
    public void onAutoFocus(boolean success, Camera camera)
    {
    if (success)
    { camera.cancelAutoFocus();
    } }
    });
      

  3.   

    这个是要硬件支持的,不是所有camera都可以。
    先调用getMaxNumFocusAreas()看下是否支持,google的说明:
    Before using this API or {@link #setFocusAreas(List)}, apps should
    call {@link #getMaxNumFocusAreas()} to know the maximum number of
    focus areas first. If the value is 0, focus area is not supported.