1

我的应用程序处理一个和两个手指触摸。第一根手指可能同时发送ACTION_MOVE动作,而第二根手指同时发送动作ACTION_POINTER_UP

那么,如何获得第一根手指的动作和第二根手指的动作呢?

4

1 回答 1

1

所以你有指针索引,你可以在你的MotionEvent.case. 根据哪个手指向下,您有不同的情况。

还要记住,无论指针索引是什么,它们都与MOVE大小写相关。除非您可以访问指针 ID,在这种情况下,您可以通过 ID 进行区分。

例如,ACTION_POINTER_1_DOWN将关联到您的第二根手指。

这是一个超级简单的例子:

switch(action) {
    case (MotionEvent.ACTION_DOWN):

        break;
    case (MotionEvent.ACTION_POINTER_1_DOWN): // Second finger

        break;
    case (MotionEvent.ACTION_MOVE):
        if(pointer > 0) {
            x = motionEvent.getX(pointer);
            y = motionEvent.getY(pointer);
        }
        else {
            x = motionEvent.getX();
            y = motionEvent.getY();
        }

        break;
    case (MotionEvent.ACTION_UP):
        System.out.println("UP");
        break;
    case (MotionEvent.ACTION_POINTER_1_UP): // Second finger
        System.out.println("1 UP");
        break;
    }
于 2015-01-11T22:01:40.230 回答