限制ACTION_MOVE区域绕圈

时间:2019-03-29 15:37:12

标签: java android

我具有用于颜色选择的自定义视图,我想将选择器限制在中间的圆卡片视图内。 enter image description here 选择器正在按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);
}

0 个答案:

没有答案