我正在使用自定义RadioButton,我只需要在图像可见区域进行点击。 正如您在下面的图片中看到的那样,我只需要在图像部分(即仅白色和绿色部分)上进行点击,黑色区域将保持透明且不可点击。如何使按钮可点击或仅在图像可见区域触摸?
感谢, 任何帮助真的会被赞赏。
我正在使用自定义RadioButton,我只需要在图像可见区域进行点击。 正如您在下面的图片中看到的那样,我只需要在图像部分(即仅白色和绿色部分)上进行点击,黑色区域将保持透明且不可点击。如何使按钮可点击或仅在图像可见区域触摸?
感谢, 任何帮助真的会被赞赏。
我觉得最简单的方法来检测图像的'可见'内容是否被点击,是钩住一个OnTouchListener,获取触摸坐标,然后使用Bitmap.getPixel(int x, int y)
获得这些坐标的颜色。由于这将返回ARBG颜色,因此使用Alpha通道的图像应该没什么问题。任何“透明的”(在这种情况下是黑色的)将是无效的,其他一切都意味着实际的内容被挖掘。
一个简单的方法就是在触摸位置抓住像素颜色。然后你可以检查像素是否透明:
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。
然后从那里我会得到的位图,我使用的位图资源较大,然后它看起来在设备中。 –