有没有可能创建一个方法,接收事件和视图,并确定事件是否发生在视图坐标内?
大致如下:
private boolean isEventOnTopOfView(MotionEvent event, View view) {...}
有没有可能创建一个方法,接收事件和视图,并确定事件是否发生在视图坐标内?
大致如下:
private boolean isEventOnTopOfView(MotionEvent event, View view) {...}
这个实现对我来说似乎是有效的:
private boolean isEventOnTopOfView(MotionEvent event, View view) {
return isViewContains(view,(int)event.getRawX(),(int)event.getRawY());
}
private boolean isViewContains(View view, int rx, int ry) {
int[] location = new int[2];
view.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
int w = view.getWidth();
int h = view.getHeight();
if (rx < x || rx > x + w || ry < y || ry > y + h) {
return false;
}
return true;
}
private fun isEventOnTopOfView(event: MotionEvent, view: View): Boolean {
return Rect().apply(view::getGlobalVisibleRect)
.contains(event.rawX.toInt(), event.rawY.toInt())
}