该文档说明了这一点:



所以我在 Activity 中完成了onTouchEvent函数的替代:

@Override
public boolean onTouchEvent(MotionEvent MEvent)
{

    motionaction = MEvent.getAction();

    if(motionaction == MotionEvent.ACTION_DOWN)
    {
        System.out.println("DEBUG MESSAGE POINTER1 " + MEvent.getActionIndex() );
    }

    if(motionaction == MotionEvent.ACTION_POINTER_DOWN)
    {
        System.out.println("DEBUG MESSAGE POINTER2 "  + MEvent.getActionIndex() );
    }

}

不幸的是,如果没有输入第二个。该 Activity 包含2个 View ,其中包含2个 OnTouchListener ,我知道仅当该 Activity 的 View 不占用该事件时才调用 onTouchEvent ,因此我尝试在监听器中返回false,这样我只能识别第一次手指触摸,但这避免了听众接收到ACTION_UP事件,并且不允许我识别第二次手指触摸。我还尝试在监听器中返回true,但在手动调用onTouchEvent函数之后,但这也使我也只能识别第一指触摸。

我的代码有什么问题?

最佳答案

我相信您的代码缺少像这样的屏蔽操作:

switch (motionaction & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_POINTER_DOWN:
}

此代码应能够检查ACTION_POINTER_DOWN。

祝你好运,并告诉我们会发生什么。

汤米·奎

关于java - Android-如何处理两指触摸,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11350064/

10-08 23:49