【问题标题】:How to make image visible area clickable in android?如何在android中使图像可见区域可点击?
【发布时间】:2013-03-20 19:29:37
【问题描述】:

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

【问题讨论】:

  • 您必须限制用户只能触摸可见区域,并且您必须为每个按钮和每个不同的屏幕尺寸手动执行此操作。不是一个很好的主意。你为什么要这样做??
  • 我认为你没有仔细阅读我的问题描述;它是一个按钮而不是平面区域,按钮可以是任何形状。通过这样做,我限制了按钮而不是用户。
  • 亲爱的你为什么要提出这个问题,有什么问题,请告诉我
  • 拜托,如果某些答案帮助您将其标记为正确,则此问题不会显示为未回答...。

标签: android


【解决方案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);

【讨论】:

    【解决方案2】:

    你可以参考这个链接:

    Image Map

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

    Link

    但是,我不建议这样做,因为您必须手动计算坐标,而且除了那个 android 屏幕有不同的尺寸,所以它可能会给您带来问题。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多