我遇到的问题是,在触发ACTION_POINTER_UP时,我需要抓住最近剩余手指的坐标。
以此为例(使用2个指针):
现在,在我的ACTION_POINTER_UP案例中,我有以下内容:
case MotionEvent.ACTION_POINTER_UP: {
y = event.getY();
x = event.getX();
break;
}
显然,这没什么用,因为(据我所知),这会记录离开屏幕的指针的x和y,不是我需要的东西
上面的示例仅使用了2个指针,但同样的问题可以应用于3,4或5个指针。
请不要链接到任何官方的Android文档或博客,我已多次阅读它们,但我仍然不明白我是如何实现这一目标的。另外,如果我对指针ID的理解不正确,请纠正我。
答案 0 :(得分:0)
由于MotionEvent的getDownTime()方法仅适用于初始指针,并且在所有指针都上升之前保持不变,因此您必须维护自己的数据结构,将指针ID映射到您的时间得到该指针的ACTION_DOWN或ACTION_POINTER_DOWN。对于这些ACTION_DOWN或ACTION_POINTER_DOWN事件的时间,请使用getEventTime()。
为了完整性,既然你提到不确定你对指针ID的理解,我顺便提一下,指针索引不是持久的,只有ID。因此,在使用检索有关指针的信息的MotionEvent方法之前,请确保您已明确这一点。
event.getX()也返回指针索引零的值,相当于event.getX(0)。