所以我正在制作一个有一组圆圈的android应用程序。当用户触摸其中一个圆圈中的一个点时,我需要根据用户触摸的位置计算一个点。
有点类似于弓箭手的目标。
我该如何做到这一点?
我已经搜索过触摸界面,但我无法弄清楚如何做到这一点
您应该使用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)){
...
}
如果这满足左侧方程小于右侧方程,则您的触摸事件在圆圈内,否则在圆圈外。
只需设置 onTouchListener 并使用 event.getX()/getY() 制作你的逻辑