多点触控-安卓多点触控-忽略一个手指



gestredetector有针对单个手指的方法,也有针对多个手指的方法。当屏幕上有几个手指时,我怎么能忽略一个手指而只传递给它一个手指呢?

我怀疑你能做到…手势检测器应该监听一个预定义的触摸/运动事件。如果屏幕上有太多的手指,那么预定义的手势将不会发生…

但是,你可以跟踪常规的多点触摸事件,并且只跟踪,比如说,第一个触摸屏幕的手指。你可以在这里的文档中看到详细的解释。

一旦几个手指触摸屏幕,生成的MotionEvent将包含指向每个手指的单独指针:

private int mActivePointerId;
public boolean onTouchEvent(MotionEvent event) {
    ....
    // Get the pointer ID
    mActivePointerId = event.getPointerId(0);
    // ... Many touch events later...
    // Use the pointer ID to find the index of the active pointer 
    // and fetch its position
    int pointerIndex = event.findPointerIndex(mActivePointerId);
    // Get the pointer's current position
    float x = event.getX(pointerIndex);
    float y = event.getY(pointerIndex);
}

最新更新