如何在Android中获得像素颜色?

时间:2013-03-21 10:12:55

标签: android

我将PNG图像(具有透明背景的图像)设置为按钮背景,当我触摸按钮时,它显示按钮触摸位置的X坐标和Y坐标,但是,我想知道触摸的像素颜色按钮的位置。

实际上我想知道触摸位置是按钮的透明区域还是按钮的彩色区域。您可以查看我为此目的开发的代码。请在这方面帮助我;我们将非常感谢您的帮助。

 button.setOnTouchListener(new OnTouchListener() 
        {
            public boolean onTouch(View v, MotionEvent event) 
            {

                int x_coordinate  = (int)event.getX(); 
                int y_coordinate = (int)event.getY(); 

            //int color = Bitmap.getPixel(x,y);

            if (event.getAction() == MotionEvent.ACTION_DOWN) 
                {
                }

            if (event.getAction() == MotionEvent.ACTION_UP) 
                {
                }

                return true;
            }
        });

3 个答案:

答案 0 :(得分:3)

试试这个

Drawable drawable = button.getBackground();
Bitmap bmp = ((BitmapDrawable) drawable).getBitmap();
int color = bmp.getPixel(x_coordinate, y_coordinate);

答案 1 :(得分:2)

首先,您可以像这样使用 BitmapFactory 获取位图:
Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic1);

现在你有了Bitmap。在此位图上,您可以调用函数getPixel(int x, int y)来获取此像素的颜色 我想你可以从那个颜色中获得alpha ..

有关详细信息,请参阅以下链接:

答案 2 :(得分:2)

试试这个

 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.picture);
    int color=bitmap.getPixel(x_coordinate, y_coordinate);

在if语句中使用此颜色来执行所需的操作