3

假设我在画布上绘制了位图图像或简单的圆圈。如何设置 OnTouchListener 以检查我的绘图是否被触摸?由于我将在画布上绘制多个圆圈,因此我希望每个圆圈都有一些唯一的 ID,以便我可以相应地工作。

4

3 回答 3

1

当您触摸屏幕时,获取 x 和 y 坐标。你已经知道圆心了。

 //x and y are co-ordiantes when touched.
 //center_x and center_y are co-ordinates of the center of the circle.
 //R is the radius of the cirlcr      

 float dx = Math.abs(x-center_x);
 float dy = Math.abs(y-center_y);
 float R = radius ;//radius of circle.

 boolean checkDistance(float dx,float dy,float R)
 {
 if(dx>R)
 {
  return false;//outside
 }
 else if(dy>R)
 {
 return false;//
 }
 else
 {
 return true;
 }
 }
于 2013-03-14T16:01:06.063 回答
0

为什么你没有得到用户绘图坐标并将它们与你的圆坐标匹配..

如何捕捉用户绘图坐标:

int x = (int) event.getX();
int y = (int) event.getY();
于 2013-07-11T14:14:00.870 回答
0

你不能轻易地用画布做到这一点。您应该自己处理触摸事件,并根据坐标/大小/z-index 检查您触摸的圆圈。

但是,如果每个圆圈都是一个视图,您可以让事情变得更容易。在这种情况下,您将能够使用标准的 android 触摸事件侦听器。对于圆形,您应该创建自定义视图类,该类在处理触摸时会考虑圆形。

于 2013-03-14T15:59:11.983 回答