gpt4 book ai didi

Android:如何判断触摸事件是否在圆圈内?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:22:57 27 4
gpt4 key购买 nike

我想在触摸一个圆形区域时播放媒体,但是如何确定我的触摸位置在圆圈内?

到目前为止,我扩展了一个 View 并实现了onTouchEvent,我需要确定位置是在圆内还是圆外的算法。

最佳答案

您应该使用 View.getX() 占据 View 的位置和 View.getY()获取左上角的 xy 并假设您知道半径(或能够获取 View 的宽度/高度以确定半径)。之后,使用 MotionEvent.getX() 获取 xTouchyTouchMotionEvent.getY()并检查是否:

double centerX = x + radius;
double centerY = y + radius;
double distanceX = xTouch - centerX;
double distanceY = yTouch - centerY;

boolean isInside() {
return (distanceX * distanceX) + (distanceY * distanceY) <= radius * radius;
}

该公式只是对学校几何学的解释,用于确定点是否在圆区域内。引用circle equation for Cartesian coordinates了解更多详情。

值的解释是:

(x + radius)(y + radius) 是圆心。

(xTouch - (x + radius)) 是触摸点到 X 中心的距离。

(yTouch - (y + radius)) 是触摸点到 Y 中心的距离。

关于Android:如何判断触摸事件是否在圆圈内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14228313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com