【发布时间】:2015-09-17 11:57:14
【问题描述】:
我有一个视图,其中放置了一个画布,并在该画布上动态绘制了一些位图(基于一些计算)。用户需要能够触摸位图并获得响应(即应该出现一个对话框)。我知道位图是图像的表示,它不能单独容纳一个听众。 除了在整个视图(填满整个屏幕)上放置一个监听器,然后检查触摸事件的坐标是否与我的任何小而分散的位图所覆盖的区域相匹配之外,有没有更聪明的方法?
【问题讨论】:
-
不行,你要检查触摸事件的坐标,调用
Rect.contains(int x, int y)有那么难吗? -
嗯,一种解决方案是为您绘制的每个位图使用单独的视图。这样,您可以为每个视图设置单独的侦听器,并且可以轻松识别已单击的位图。
-
@pskink 我只是认为将侦听器附加到图像而不是每次用户触摸屏幕时遍历列表或矩形会更有效(因此“更智能”)。
-
@Vikalp 然后我怎样才能将这些视图放置在画布中?我认为视图包含画布,而不是相反。
-
所以添加自定义的“listener”类,在里面你仍然需要遍历一个矩形列表,没有魔法......
标签: android canvas bitmap ontouchlistener