我具有用于颜色选择的自定义视图,我想将选择器限制在中间的圆卡片视图内。 选择器正在按ACTION_MOVE和ACTION_UP移动。通过此函数可以更改坐标:
private void updateSelector(float eventX, float eventY) {
float x = eventX - centerX;
float y = eventY - centerY;
double r = Math.sqrt(x * x + y * y);
if (r > radius) {
x *= radius / r;
y *= radius / r;
}
currentPoint.x = x + centerX;
currentPoint.y = y + centerY;
selector.setCurrentPoint(currentPoint);
}
我还编写了此帮助程序功能,以检查cardview内的选择器是否正确,但是我不知道如何限制选择器进入。
private boolean isInBounds(float x, float y) {
return Math.sqrt(x - centerX) + Math.sqrt(y - centerY) <= Math.sqrt(cardradius);
}