繁体   English   中英

Android - 如何处理两个手指触摸

[英]Android - How to handle two finger touch

文档说明了这一点:

手势以ACTION_DOWN的动作事件开始,该动作事件提供第一个指针向下的位置。 当每个附加指针向下或向上时,框架将相应地生成带有ACTION_POINTER_DOWN或ACTION_POINTER_UP的运动事件。

所以我在我的活动中完成了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() );
    }

}

不幸的是,永远不会输入第二个if。 该活动包含2个视图和2个OnTouchListener ,我知道只有当活动的视图不消耗事件时才调用onTouchEvent所以我试图在监听器中返回false,这样我只能识别第一次手指触摸但是这可以避免听众收到ACTION_UP事件,也不允许我识别第二次手指触摸。 我也试图在监听器中返回true,但是在手动调用onTouchEvent函数之后,这也让我只能识别第一个手指触摸。

我的代码有什么问题?

我相信你的代码缺少掩码操作,如:

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

此代码应该能够检查ACTION_POINTER_DOWN。

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

汤米克威

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM