如何创建一个不规则形状的图像按钮,其中图像的透明部分不可点击?
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
来检查透明度。以上是关于如何创建一个不规则形状的图像按钮,其中图像的透明部分不可点击?的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 如何使 UIButton 仅在附加的图像上点击交互并忽略透明部分