gpt4 book ai didi

java - Android - 如何处理两指触摸

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:28:11 24 4
gpt4 key购买 nike

文档是这样说的:

A gesture starts with a motion event with ACTION_DOWN that provides the location of the first pointer down. As each additional pointer that goes down or up, the framework will generate a motion event with ACTION_POINTER_DOWN or ACTION_POINTER_UP accordingly.

所以我在 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() );
}

}

不幸的是,第二个 if 从未被输入。该 Activity 包含 2 个 View 和 2 个 OnTouchListener,我知道只有当 Activity 的 View 不使用事件时才会调用 onTouchEvent,所以我试图在听众,以这种方式我只能识别第一根手指触摸,但这避免了听众接收 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com