【问题标题】:Android multitouch - ignore one fingerAndroid 多点触控 - 忽略一根手指
【发布时间】:2015-10-02 01:58:33
【问题描述】:

GestureDetector 有用于单指和多指的方法。当屏幕上的手指很少时,如何忽略一根手指而只传递一根手指?

【问题讨论】:

  • 我真的不知道您要做什么,但是“忽略手指”听起来不是一个好主意。不过,GestureDetector 似乎旨在检测单个“手指”的手势。
  • 我想重用我在课堂上实现 GestureDetector 的代码。尽管这不是一个好主意,但我真的需要它:)
  • 我仍然不明白您需要“忽略手指”。无论如何,您应该能够从单个 MotionEvent 中获取与不同指针相关的数据。

标签: android multi-touch


【解决方案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);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多