android:ACTION_UP和ACTION_POINTER_UP的区别

android:ACTION_UP和ACTION_POINTER_UP的区别,android,multi-touch,Android,Multi Touch,仅从android文档来看,我并不真正理解ACTION\u UP和ACTION\u POINTER\u UP之间的区别。 基本上,我想在一根手指从屏幕上松开时捕捉事件(即使另一根手指可能仍在触摸它) 谢谢 我相信这是由于添加了多点触摸,ACTION\u UP从API级别1开始就一直存在,但ACTION\u POINTER\u UP是在添加多点触摸时添加到API级别5的 您得到的结果将取决于您调用的方法,getAction()将返回ACTION\u UP,而getActionMasked()将提

仅从android文档来看,我并不真正理解ACTION\u UP和ACTION\u POINTER\u UP之间的区别。

基本上,我想在一根手指从屏幕上松开时捕捉事件(即使另一根手指可能仍在触摸它)


谢谢

我相信这是由于添加了多点触摸,ACTION\u UP从API级别1开始就一直存在,但ACTION\u POINTER\u UP是在添加多点触摸时添加到API级别5的


您得到的结果将取决于您调用的方法,getAction()将返回ACTION\u UP,而getActionMasked()将提供ACTION\u POINTER\u UP,但也允许您调用getActionIndex()以找出刚才提出的多点触控指针。我想这就是你想要做的。

如果你还没有读过,就从这里开始:

Android从手势的角度考虑触摸事件。这种意义上的手势包括从触摸屏幕的第一个手指到离开屏幕的最后一个手指的所有事件。一个手势的整个事件序列始终发送到初始动作\u DOWN期间拾取的同一视图,除非父级出于某种原因截获事件流。如果父级截取子级的事件流,子级将获得操作\u取消

如果正在处理多点触摸事件,请始终使用getActionMasked()返回的值来确定操作。如果您不需要多点触控或正在使用较旧的平台版本,则可以忽略操作指针事件

  • 动作是指触摸屏幕的第一根手指。这就开始了这个手势。此手指的指针数据在MotionEvent中始终位于索引0处
  • 操作指针向下是为了在第一个手指之外进入屏幕的额外手指。此指针的指针数据位于getActionIndex()返回的索引处
  • 当一个手指离开屏幕但至少一个手指仍在触摸屏幕时,会发送操作指针向上。关于上升的手指的最后一个数据示例位于getActionIndex()返回的索引处
  • 当最后一根手指离开屏幕时,将发送动作。关于向上移动的手指的最后一个数据示例位于索引0处。这个手势到此结束
  • 动作\u取消意味着由于某种原因整个手势被中止。这个手势到此结束

谢谢,这个答案填补了教程和官方文档中的许多空白@adamp在我的应用程序中,我想实现单指滑动和双指滑动。但现在发生的是,当我进行双指滑动时,会执行两个动作,即,第一个动作用于单指滑动,第二个动作用于双指滑动。。当屏幕上仍然有一个手指时,请检查是否使用了此“动作”\u指针\u UP而不是“动作”\u UP