1

我已将 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;
            }
        });
4

3 回答 3

3

尝试这个

Drawable drawable = button.getBackground();
Bitmap bmp = ((BitmapDrawable) drawable).getBitmap();
int color = bmp.getPixel(x_coordinate, y_coordinate);
于 2013-03-21T10:19:45.443 回答
2

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

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

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

于 2013-03-21T10:21:04.710 回答
2

尝试这个

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

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

于 2013-03-21T10:27:54.600 回答