0

我的代码,严重简化如下:

    if(action == MotionEvent.ACTION_DOWN){
        x = me.getX();
        y = me.getY();
    }
    else if(action == MotionEvent.ACTION_UP){
        x = me.getX();
        y = me.getY();
    }
    else if(action == MotionEvent.ACTION_MOVE){
        x = me.getX();
        y = me.getY();
    }
    if(action == MotionEvent.ACTION_POINTER_2_DOWN){
        x2 = me.getX(1);
        y2 = me.getY(1);
    }
    if(action == MotionEvent.ACTION_POINTER_2_UP){
        x2 = me.getX(1);
        y2 = me.getY(1);
    }

我想添加

    if(action == MotionEvent.ACTION_POINTER_2_MOVE){
        x2 = me.getX(1);
        y2 = me.getY(1);
    }

但是当然

   MotionEvent.ACTION_POINTER_2_MOVE

不是真正的方法。我知道必须有办法解决这个问题。有什么建议么?

如果您不理解我的问题,我要问的是,当指针移动时,是否有一种多点触控方法可以运行?顺便说一句,谷歌没有帮助。

我还检查了http://developer.android.com/reference/android/view/MotionEvent.html但又没什么用

4

1 回答 1

0

从文档中:

单个指针在运动事件中出现的顺序是未定义的。因此,指针的指针索引可以从一个事件更改为下一个事件,但只要指针保持活动状态,就可以保证指针的指针 id 保持不变。使用 getPointerId(int) 方法获取指针的指针 id,以在手势中的所有后续运动事件中跟踪它。然后对于连续的运动事件,使用 findPointerIndex(int) 方法获取该运动事件中给定指针 id 的指针索引。

您必须自己获取和跟踪指针 ID,并确定移动了哪些指针。

http://developer.android.com/reference/android/view/MotionEvent.html

于 2013-01-08T17:14:04.660 回答