屏幕Android特定部分内的像素

时间:2013-07-22 10:23:31

标签: android

是否可以计算屏幕特定部分的像素数?说我画一个圆圈,想要计算不。圈内的像素!

2 个答案:

答案 0 :(得分:1)

您可以获取视图的宽度和高度,但这取决于您绘制圆的方式。如果您在Canvas上绘制它,则可以使用以下方法计算圆的面积:

area = Π x r(2)

您需要的只是圆的半径,并使用3.1415927作为Pi的值。

答案 1 :(得分:0)

将画布推到位图然后计算像素:

public static Bitmap getBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);                
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;

}

这将获得位图,然后逐步浏览每个像素并计算您正在寻找的颜色:

for(int x = 0; x < b.getWidth(); x++){
    for(int y = 0; y < b.getHeight(); y++){
        int pixel = b.getPixel(x,y);
        int r = Color.red(pixel);
        int g = Color.green(pixel);
        int b = Color.blue(pixel);

        //test against your colour here and increment counter
    }
}    

我没有IDE可供使用,所以代码可能有点粗糙,但它会让你走上正确的路线。