1

在此处输入图像描述

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

4

1 回答 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 回答