我希望能够知道一个区域所覆盖的总面积(例如,在该区域上的双积分)。 我找不到任何方法,我想我必须逐个像素。 提前谢谢!
答案 0 :(得分:2)
您应该能够使用RegionIterator
并对返回的矩形区域求和。
推理:Andriod文档暗示当在区域上完成布尔运算时,结果区域是一组具有所需并集的非重叠矩形。换句话说,A - B
,其中A和B是矩形,因此可能产生0,1,2,3或4个矩形。
我还没有测试过,但the Android xRef site的来源显示验证区域由没有重叠的矩形组成。
答案 1 :(得分:1)
看来,我和你的问题有同样的问题。
我不确定,如果这是一个“真正的”解决方案。但是我发布了我的代码。值看起来不错。
private void calculateArea(Region region) {
RegionIterator regionIterator = new RegionIterator(region);
int size = 0; // amount of Rects
float area = 0; // units of area
Rect tmpRect= new Rect();
while (regionIterator.next(tmpRect)) {
size++;
area += tmpRect.width() * tmpRect.height();
}
log.d("Rect amount=" + size);
log.d("Area Size / units of area=" + area);
}
}
我的问题是:我想获得一些绘制的pathes的面积大小。为了识别路径上的触摸,我也添加了一个区域。