Android多点触控 - 忽略一根手指

时间:2015-07-13 17:17:08

标签: android multi-touch

GestureDetector包含单个手指以及多个手指的方法。当屏幕上的手指很少并且只用一根手指传递给它时,我怎么能忽略一根手指?

1 个答案:

答案 0 :(得分:1)

我怀疑你能做到这一点...... 手势探测器应该听取预定义的触摸/运动事件。如果屏幕上的手指太多,预定义的手势就不会发生......

但是,您可以跟踪常规的多点触控事件,并且只关注触及屏幕的第一根手指。 您可以在文档here中查看详细说明。

一旦手指触摸屏幕,生成的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);
}