导语
转载请标明出处http://blog.youkuaiyun.com/qq_26411333/article/details/53964762
GestureDetector用于手势的检测,其中的OnGestureListener和OnDoubleTapListener可以用来检测一些常见的事件。之前也看过一些相关的文档,但是过目即忘。这里,我把一些重要的内容给弄出来,方便各位查看。(如果需要详细的介绍,可以去网上搜索相关的内容)
相关方法地描述
GestureDetector.OnGestureListener相关方法地描述
方法名 | 描述 |
---|---|
onDown | 按下,由一个 ACTION_DOWN 触发 |
onShowPress | 按住不放,没有触发 ACTION_MOVE 和 ACTION_UP |
onSingleTapUp | 轻轻按下后放开(单击或者双击都会回调此方法) |
onScroll | 滑动,由 ACTION_MOVE 和多个 ACTION_MOVE 组成 |
onLongPress | 长按 |
onFling | 快速滑动后松开,由一个 ACTION_DOWN 多个 ACTION_MOVE 和 一个 ACTION_UP组成 |
GestureDetector.OnDoubleTapListener相关方法描述
方法名 | 描述 |
---|---|
onSingleTapConfirmed | 严格的单击事件,与double-tap不共存 |
onDoubleTap | 双击 |
onDoubleTapEvent | 双击事件,在双击期间,down、move、up都会触发回调 |
在单击、双击、长按等事件中的调用顺序
在相关方法中写入Log,并在onTouchEvent()中写入如下代码,通过一些常用事件的测试,很容易得到后面给出来的流程图:
@Override
public boolean onTouchEvent(MotionEvent event) {
gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
快速单击
慢速单击
双击
长按
快速滑动
稍微按下后滑动
PS:在测试中,你会发现,onSingleTapConfirmed和onDoubleTapEvent、onDoubleTap是不共存的
结语
网络上已经有很多帖子对GestureDetector有各种详尽的分析,我这里也就不再舔砖了。本篇文章偏重于Ape Programmer在已经理解相关方法后的查阅,在用到的时候可以快速回想起相应的内容。