5

在 Android API 14 中,引入了将相机聚焦到特定区域的可能性。API 详细说明了可以提供权重,但是在阅读了多次描述后,我仍然无法弄清楚如何使用它以及设置哪个值,或者在哪些因素下决定使用权重值,有人可以吗?请更好地解释我在对焦时如何使用这个参数?谢谢

来自 SDK 帮助的引用

每个区域由一个指定其边界的矩形和一个确定其重要性的权重组成。边界相对于相机的当前视野。映射坐标以便 (-1000, -1000) 始终是当前视野的左上角,而 (1000, 1000) 始终是当前视野的右下角。不允许设置超出该范围的区域。不允许有零或负宽度或高度的区域。 权重必须在 1 到 1000 的范围内,表示区域中每个像素的权重。这意味着与较小区域具有相同权重的大测光区域对测光结果的影响更大。计量区域可以重叠,驾驶员将在重叠区域添加权重。

4

1 回答 1

1

尝试这个:

@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
public void setMeteringAndFocusArea (int x1, int y1, int x2, int y2, Camera camera){
    Camera.Parameters camParam = camera.getParameters();

    if (cameraParameters.getMaxNumMeteringAreas() > 0){ 
        List<Camera.Area> areas = new ArrayList<Camera.Area>();
        Rect areaRect = new Rect(x1, x2, y1, y2);   
        areas.add(new Camera.Area(areaRect, 1000));
        camParam.setMeteringAreas(areas); //You can use only Focus Areas if you don't care for metering.
        camParam.setFocusAreas(areas);

        camera.setParameters(camParam);
    }

}

并且不要忘记使用

camera.autoFocus();

在拍照之前,否则 setFocusAreas() 不会有任何效果。请参阅此链接,发布在此问题中以获得很好的实现。

于 2013-08-12T15:17:10.453 回答