我正在使用三角形按钮(PNG图像),我只需要在图像可见区域上进行点击。正如您在下面我的三角形状按钮的图像中所看到的,在图像中我需要仅在图像可见部分(即黑色和红色)上进行点击,绿色区域将保持透明且不可点击。请帮助我这方面我非常感谢你。提前致谢。
答案 0 :(得分:1)
Identifying image area clicked in Android?检查此问题
如果绿色是透明的, 我认为检测图像的“可见”内容是否被点击的最简单方法是连接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);
答案 1 :(得分:0)
答案 2 :(得分:0)
您可以将OnTouchListener设置为View并检查是否单击了三角形内部(OnTouch事件发送MotionEvent对象,您可以从中获取触摸事件的坐标)。
如果按钮可以作为矩形点击,可能会更好吗?就像这里一样,在stackoverflow上,投票按钮也有三角形,但它们可以在矩形形状上点击。