我已将onTouchListener
设置在屏幕的蓝色部分。它只会在触摸手指时获得x,y坐标。白色部分根本不做任何事情。问题在于,如果在开始时手指在蓝色部分上被触摸并且当它“移出”到白色部分时,它仍然继续获得x,y坐标。理想情况下,我希望设备在手指离开屏幕时停止检测运动事件。希望你能帮忙。
答案 0 :(得分: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
}
}