【问题标题】:Setting a listener on bitmap in a canvas?在画布的位图上设置监听器?
【发布时间】:2015-09-17 11:57:14
【问题描述】:

我有一个视图,其中放置了一个画布,并在该画布上动态绘制了一些位图(基于一些计算)。用户需要能够触摸位图并获得响应(即应该出现一个对话框)。我知道位图是图像的表示,它不能单独容纳一个听众。 除了在整个视图(填满整个屏幕)上放置一个监听器,然后检查触摸事件的坐标是否与我的任何小而分散的位图所覆盖的区域相匹配之外,有没有更聪明的方法?

【问题讨论】:

  • 不行,你要检查触摸事件的坐标,调用Rect.contains(int x, int y)有那么难吗?
  • 嗯,一种解决方案是为您绘制的每个位图使用单独的视图。这样,您可以为每个视图设置单独的侦听器,并且可以轻松识别已单击的位图。
  • @pskink 我只是认为将侦听器附加到图像而不是每次用户触摸屏幕时遍历列表或矩形会更有效(因此“更智能”)。
  • @Vikalp 然后我怎样才能将这些视图放置在画布中?我认为视图包含画布,而不是相反。
  • 所以添加自定义的“listener”类,在里面你仍然需要遍历一个矩形列表,没有魔法......

标签: android canvas bitmap ontouchlistener


【解决方案1】:

我会写这个,这样问题就不会悬而未决。答案是不。”如上所述,您必须以艰难的方式做到这一点。

【讨论】:

    猜你喜欢
    • 2011-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多