我将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;
}
});
答案 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语句中使用此颜色来执行所需的操作