在纯Java中,我可以使用MouseInputListener
来处理这两个事件。
如何使用Android进行操作?
如果我实现这两个事件,那么只会触发一个事件(onClickListener
)而不是另一个事件。
更新
问题不在于检测手指的移动。
我有一个视图(例如ImageView
)。我需要检测此视图上的点击onClickListener()
以及此视图上的手指移动(即按下,移动然后释放手指)。
这里的问题是只调用onClickListener()
并且没有捕获MotionEvent
处理程序。
我需要能够区分这两个事件,因为主要事件应该是手指移动而onClickListener()
应该只是说“不要点击此视图。旋转此视图”。
希望这更清楚。
答案 0 :(得分:0)
OnClickListener
和OnTouchListener
互相阻碍,因为它们都会消耗MotionEvent
上的View
。
基本上你可以编写一个OnTouchListener
来检查这两件事。你将获得MotionEvent作为参数。通过MotionEvent.getAction()
检查其操作,例如如果它等于MotionEvent.ACTION_DOWN
(用户将手指放在显示屏上)。如果用户在大约释放手指相同的位置(ACTION_UP
),您可能希望将其解释为点击。否则,将ACTION_MOVE
事件所获得的位置解释为手势。
但是框架已经有一些课程可以为你完成这个解释工作,查看SimpleGestureDetector
类,它是SimpleOnGestureListener
。这有一些针对常见事件的回调,例如: onSingleTapConfirmed()
和onFling()
。您需要做的就是将OnTouchListener中的MotionEvent提供给GestureDetector。