gpt4 book ai didi

java - 处理android中的多点触摸事件

转载 作者:行者123 更新时间:2023-11-30 03:21:21 25 4
gpt4 key购买 nike

我在使用 android 的多点触控系统时遇到了一些问题。我看过他们的文档,了解它是如何工作的,从那里我认为这里的这段代码可能有效(注意,指针是一个点数组,因此我可以通过 ID 跟踪每个点)但是,我发现当它出现时拖动,它只会更新 ID 为 0 的指针。我不确定这里出了什么问题,有人可以帮我吗? (同样值得注意的是,此方法是从另一个类中的 onTouch() 事件调用的,是的,它返回 true :) )

public void tap(MotionEvent e) {
int index = MotionEventCompat.getActionIndex(e);
int ID = MotionEventCompat.getPointerId(e, index);
switch(MotionEventCompat.getActionMasked(e)) {
case MotionEvent.ACTION_DOWN:
pointers[ID] = new Point((int)MotionEventCompat.getX(e, index), (int)MotionEventCompat.getY(e, index));
break;
case MotionEvent.ACTION_POINTER_DOWN:
pointers[ID] = new Point((int)MotionEventCompat.getX(e, index), (int)MotionEventCompat.getY(e, index));
break;
case MotionEvent.ACTION_MOVE:
pointers[ID] = new Point((int)MotionEventCompat.getX(e, index), (int)MotionEventCompat.getY(e, index));
break;
case MotionEvent.ACTION_UP:
pointers[ID] = new Point((int)MotionEventCompat.getX(e, index), (int)MotionEventCompat.getY(e, index));
break;
}
}

最佳答案

ID 0 是正确的,因为你只是用一根手指拖动。指针表示您的手指。在您的场景中,此处的索引也应始终为 0。另外,你只需要使用MotionEvente,比如

e.getPointerCount ();
e.getX (pointerIndex);
e.getY (pointerIndex);

关于java - 处理android中的多点触摸事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19081514/

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