Android 自定义Veiw 设置clickable区域

187 阅读1分钟

onLayout中获取可点区域

onLayout(xxxxx) {
    rect.left = xxx;
    rect.top = xxx;
    rect.right = xxx;
    rect.bottom= xxx;
}

重写onTouchEvent

onTouchEvent(event) {
    final float x = event.getX();
    final flout y = event.getY();
    swith () {
        case MotionEvent.ACTION_DOWN:
            setClickable(true);
            break;
        case MotionEvent.ACTION_UP:
            if (rect.contains(x, y)) {
                setClickable(true);
            } else {
                setClickable(false);
            }
            break;
    }
    return super.onTouchEvent(event);
}