当手指离开Android中的当前视图时,如何停止接收运动事件的x,y坐标?

时间:2013-03-13 13:23:29

标签: android view motionevent

enter image description here

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

1 个答案:

答案 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
    }
}