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

Android 如何创建不规则形状的图像按钮,其中图像的透明部分不可单击?,android,touch,transparent,imagebutton,clickable,Android,Touch,Transparent,Imagebutton,Clickable,我有一个不规则形状的PNG图像,例如一个圆角透明的圆形图像 如何创建此图像的imagebutton,而不让角落可触摸 如果可能的话,我可能想创建其他不规则形状的图像按钮。查看第二个答案,我相信它正是您所需要的 稍后编辑: 快速总结: 使用TouchListener而不是ClickListener 在侦听器内部,如果事件是MotionEvent.ACTION\u DOWN,则获取触摸坐标 在先前获得的坐标处检查图像的像素;如果像素不透明,则考虑单击按钮,否则忽略事件。 通过更改“热区”或“可点击区

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

如何创建此图像的imagebutton,而不让角落可触摸


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

查看第二个答案,我相信它正是您所需要的

稍后编辑:

快速总结:

  • 使用
    TouchListener
    而不是
    ClickListener

  • 在侦听器内部,如果事件是
    MotionEvent.ACTION\u DOWN
    ,则获取触摸坐标

  • 在先前获得的坐标处检查图像的像素;如果像素不透明,则考虑单击按钮,否则忽略事件。


  • 通过更改“热区”或“可点击区域”方法?让我试试看。谢谢,伙计。请详细说明一下。“不能让它工作”可能意味着什么。我给你指出的答案似乎很简单。对不起,Android还是个新手,我不确定如何在我的代码中使用这段代码。目前,我有一个ImageButton正在侦听OnClick事件。onTouch或MotionEvent是如何填充的?是的,我能够得到触摸的坐标。如何检查坐标是否属于哪个图像?如何使用像素检查透明度?getPixels()方法用于位图。也许我需要使用位图绘制按钮?使用
    Bitmap Bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.YOUR_IMAGE_ID)获取位图。现在有了位图对象,可以使用
    getPixel
    检查透明度。