如何在android中使图像可见区域可点击?

时间:2013-03-20 11:15:33

标签: android

我正在使用三角形按钮(PNG图像),我只需要在图像可见区域上进行点击。正如您在下面我的三角形状按钮的图像中所看到的,在图像中我需要仅在图像可见部分(即黑色和红色)上进行点击,绿色区域将保持透明且不可点击。请帮助我这方面我非常感谢你。提前致谢。

enter image description here

3 个答案:

答案 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)

您可以参考以下链接:

Image Map

或者你也可以参考这个类似的问题:

Link

但是,我不建议这样做,因为你必须手动计算坐标,除了Android屏幕有不同的大小,所以它可能会导致你的问题。

答案 2 :(得分:0)

您可以将OnTouchListener设置为View并检查是否单击了三角形内部(OnTouch事件发送MotionEvent对象,您可以从中获取触摸事件的坐标)。

如果按钮可以作为矩形点击,可能会更好吗?就像这里一样,在stackoverflow上,投票按钮也有三角形,但它们可以在矩形形状上点击。