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

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

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

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

【问题讨论】:

    标签: android touch transparent imagebutton clickable


    【解决方案1】:

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

    后期编辑:

    快速总结:

    1. 使用TouchListener 代替ClickListener

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

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

    【讨论】:

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