我已经onTouchListener
在屏幕的蓝色部分设置了。只有当手指触摸它时,它才会获得 x,y 坐标。白色部分根本不做任何事情。问题是,如果一开始手指触摸蓝色部分,当它“移出”到白色部分时,它仍然继续获取x,y坐标。理想情况下,我希望设备在手指离开屏幕时停止检测运动事件。希望你能帮忙。
问问题
1551 次
1 回答
1
最简单的解决方案是通过简单地将其 x,y 坐标与视图边界矩形进行比较来检查您的手指是否正在触摸视图。然后,您可以通过从 dispatchTouchEvent 返回 false 来停止接收事件。
编辑:
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
Rect outRect = new Rect();
getDrawingRect(outRect);
if (outRect.contains((int) event.getX(), (int) event.getY())) {
return true; // I want more events
} else {
return false; // stop events until next ACTION_DOWN on me
}
}
于 2013-03-13T13:50:35.060 回答