1

所以我正在制作一个有一组圆圈的android应用程序。当用户触摸其中一个圆圈中的一个点时,我需要根据用户触摸的位置计算一个点。
有点类似于弓箭手的目标。
我该如何做到这一点?

我已经搜索过触摸界面,但我无法弄清楚如何做到这一点

4

2 回答 2

3

您应该使用TouchListener以下代码来了解您的触摸事件是否发生在圆圈内。

公式

(x - center_x)^2 + (y - center_y)^2 < radius^2

代码

int x = view.getX();  
int y = view.getY();  

if((xTouch - (x + radius)) * (xTouch - (x + radius)) + (yTouch - (y + radius)) * (yTouch - (y + radius)) <= (radius * radius)){
    ...
}

如果这满足左侧方程小于右侧方程,则您的触摸事件在圆圈内,否则在圆圈外。

于 2013-09-18T13:05:27.207 回答
1

只需设置 onTouchListener 并使用 event.getX()/getY() 制作你的逻辑

于 2013-09-18T12:27:54.480 回答