该文档说明了这一点:
所以我在 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/