如何创建一个不规则形状的图像按钮,其中图像的透明部分不可点击?

Posted

技术标签:

【中文标题】如何创建一个不规则形状的图像按钮,其中图像的透明部分不可点击?【英文标题】:How to create an irregular shaped imagebutton where transparent part of image is not clickable? 【发布时间】:2012-01-03 17:19:13 【问题描述】:

我有一个不规则形状的 PNG 图像,例如一个角是透明的圆形图像。

如何创建此图像的图像按钮而不让角落可触摸?

如果可能的话,我可能想创建其他不规则形状的图像按钮。

【问题讨论】:

【参考方案1】:

查看this question的第二个答案,我相信这正是你所需要的。

后期编辑:

快速总结:

    使用TouchListener 代替ClickListener

    在监听器内部,如果事件是MotionEvent.ACTION_DOWN,获取触摸坐标

    在您之前获得的坐标处检查图像的像素;如果像素不透明,则认为按钮被点击,否则忽略该事件。

【讨论】:

通过改变“热区”或“可点击区域”的方式?让我试试看。谢谢老兄。 请详细说明。 “无法正常工作”可能意味着任何事情。我指出你的答案似乎很简单。 抱歉,在 android 中仍然是新的,我不确定如何在我的代码中使用该 sn-p。目前我有一个 ImageButton 正在监听 onClickEvent。那个onTouch或者MotionEvent是怎么填的? 是的,我可以得到触摸的坐标。如何检查坐标是否属于哪个图像?以及如何使用像素检查透明度? getPixels() 方法用于位图。也许我需要使用位图绘制按钮? 使用Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.YOUR_IMAGE_ID);获取位图。现在您有了位图对象,您可以使用getPixel 来检查透明度。

以上是关于如何创建一个不规则形状的图像按钮,其中图像的透明部分不可点击?的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 上的多个按钮

如何制作非矩形形状的图像

Swift - 如何使 UIButton 仅在附加的图像上点击交互并忽略透明部分

如何在 iPhone 上使形状不规则的透明 CALayer 变暗?

Tkinter:将具有透明背景的图像添加到按钮

将矩形图像变形为不规则形状