图片来源于网络
之前我分享过
Android
的MotionEvent
事件,在使用onTouchEvent(MotionEvent event)
方法的时候,我们可以通过GestureDetector
来完成不同手势的识别。
GestureDetector简述
GestureDetector
,俗称手势检测,用于辅助检测用户的单击、滑动、长按、双击等行为。
GestureDetector的接口
GestureDetector
主要提供以下两个接口:
-
OnGestureListener
; -
OnDoubleTapListener
;
OnGestureListener
OnGestureListener
会有以下的动作检测回调:
-
onDown
,用户按下屏幕; -
onShowPress
,如果按下的时间超过瞬间,而且在按下的时候没有松开或者是拖动的,就会回调该事件; -
onSingleTapUp
,一次单独的轻击抬起操作,也就是轻击一下屏幕,立刻抬起来,才会有这个触发;如果除了Down以外还有其它操作,那就不再是Single操作了,所以也就不会触发这个事件; -
onScroll
,在屏幕上拖动,无论是用手拖动view,或者是以抛的动作滚动,都会多次触发,这个方法在ACTION_MOVE动作发生时就会触发; -
onLongPress
,长按触摸屏,超过一定时长触发该事件回调; -
onFling
,滑动屏幕,用户按下触摸屏、快速移动后松开,由1个MotionEvent ACTION_DOWN, 多个ACTION_MOVE, 1个ACTION_UP触发;
OnDoubleTapListener
OnDoubleTapListener
主要有以下几个事件回调:
-
onSingleTapConfirmed
,单击事件,用来判定该次点击是SingleTap而不是DoubleTap,如果连续点击两次就是DoubleTap手势,如果只点击一次,系统等待一段时间后没有收到第二次点击则判定该次点击为SingleTap而不是DoubleTap,然后触发SingleTapConfirmed事件。; -
onDoubleTap
,双击事件; -
onDoubleTapEvent
,双击间隔之间的回调,指触发onDoubleTap以后,在双击之间发生的其它动作,包含down、up和move事件;
SimpleOnGestureListener
SimpleOnGestureListener
是GestureDetector
的外部类,是对OnGestureListener
和OnDoubleTapListener
的集成,包含了这两个接口的所有必须实现的函数而且都是已经重写的,所有的方法都是空的。