在Android中,权重区域参数的聚焦到底有什么用?

Per*_*abs 5 android focus android-camera

在 Android API 14 中,引入了使用相机聚焦到特定区域的可能性。API明确规定可以提供权重,但是读了几遍描述后,我仍然不知道如何使用它以及设置哪个值,或者在哪些因素下决定要使用的权重值,任何人都可以请更好地解释一下如何在对焦时使用此参数?谢谢

引用自SDK帮助

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

SMD*_*SMD 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);
    }

}
Run Code Online (Sandbox Code Playgroud)

并且不要忘记使用

相机.自动对焦();

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