2011-12-02 93 views
1

我正在使用自定义RadioButton,我只需要在图像可见区域进行点击。 正如您在下面的图片中看到的那样,我只需要在图像部分(即仅白色和绿色部分)上进行点击,黑色区域将保持透明且不可点击。如何使按钮可点击或仅在图像可见区域触摸?

enter image description here

感谢, 任何帮助真的会被赞赏。

回答

1

我觉得最简单的方法来检测图像的'可见'内容是否被点击,是钩住一个OnTouchListener,获取触摸坐标,然后使用Bitmap.getPixel(int x, int y)获得这些坐标的颜色。由于这将返回ARBG颜色,因此使用Alpha通道的图像应该没什么问题。任何“透明的”(在这种情况下是黑色的)将是无效的,其他一切都意味着实际的内容被挖掘。

0

一个简单的方法就是在触摸位置抓住像素颜色。然后你可以检查像素是否透明:

int color = Bitmap.getPixel(x,y); // x and y are the location of the touch event in Bitmap space 
int alpha = Color.getAlpha(color); 
boolean isTransparent = (alpha==0); 

更多详细信息here

+0

然后从那里我会得到的位图,我使用的位图资源较大,然后它看起来在设备中。 –