gpt4 book ai didi

Android:仅使自定义 View 的某些部分可点击

转载 作者:行者123 更新时间:2023-11-29 19:10:00 24 4
gpt4 key购买 nike

我有一个自定义 View ,假设它看起来像这样:

My Custom View

我希望我的自定义 View 响应 onClicks,但要注意的是我希望它仅响应红色部分/圆圈上的点击。不是整个 View 。

是否可以让上面的文字和灰色部分不可点击?

谢谢。

最佳答案

在自定义 View 中,您可以通过重写 android 的 View 类的 onTouchEvent 方法来处理点击。首先检查用户点击的位置是否在圆圈内。然后通常您会在 MotionEvent.ACTION_DOWN 事件上提供一些反馈,让用户知道他们已点击,例如突出显示圆圈。然后在 MotionEvent.ACTION_UP 上你可以调用你的 onClick 方法。

@Override
public boolean onTouchEvent(MotionEvent event) {
boolean isTouchInCircle = checkTouchInCircle(event.getX(), event.getY());
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
if (isTouchInCircle) {
circleColor = highlightColor;
invalidate();
}
break;
case MotionEvent.ACTION_MOVE:
if (isTouchInCircle) {
circleColor = highlightColor;
} else {
circleColor = normalColor
}
invalidate();
break;
case MotionEvent.ACTION_UP:
if (isTouchInCircle) {
onClickCircle();
}
break;
}
return true;
}

// Circle click zone approximated as a square
private boolean checkTouchInCircle(float touchX, float touchY) {
if (touchX < circleCenterX + circleRadius
&& touchX > circleCenterX - circleRadius
&& touchY < circleCenterY + circleRadius
&& touchY > circleCenterY - circleRadius) {
return true;
} else {
return false;
}
}

关于Android:仅使自定义 View 的某些部分可点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45682094/

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