Android Gesture Detector工具

📅 2026/7/5 21:13:15
Android Gesture Detector工具
1、简介我们知道Android中的事件,实际是一个事件序列,由一个Down事件、若干个Move事件,以及一个Up或Cancel事件组成。我们之所以能够区别长按、单击、双击、滑动等,都是通过对这个事件序列进行解析之后得到的。如Down事件之后500ms之内抬起(Up事件),则解析为单击;Down事件之后超过500ms抬起,触发长按。这种将事件序列解析为具体的行为的工作就是手势侦测。Android自动为我们提供了单击和长按的手势侦测,只要设置onClickListener和onLongClickListener就能够接收到点击和长按事件。但是对于其他一些事件,比如双击、按下、惯性滑动,则需要额外的侦测器。Android同样为我们提供了可用的扩展工具,来进行这些手势的侦测。外挂的侦测器有两种:GestureDetector和GestureDetectorCompat。他们的区别是,前者是android系统的,它随着系统的升级迭代更新;而后者Gesture Detector Compat是AndroidX提供的工具,不依赖于android系统,随Androidx的升级迭代更新。GestureDetectorCompat具有更好的兼容性。比如对于旧版的android系统,没有GestureDetector但是可以通过依赖AndroidX得到GestureDetector Compat。这两个侦测器的功能基本是一致的,我们推荐使用GestureDetector Compat,获得更好的兼容性。GestureDetectorCompat的用法原理是,在View的onTouchEvent方法里,接管所有传递到该View的事件,通过自己的算法识别具体的手势行为,在通过回调传递给开发者。开发者根据识别好的手势,实现具体的业务逻辑。2、监听接口GestureDetector是侦测器,负责将事件序列侦测出来,侦测的结果要通过监听器返回给开发者。通过给侦测器设置不同的监听器,就可以从接口方法获得对应的手势事件。GestureDetector为我们提供的监听器有四种:OnGestureListener、OnDoubleTapListener、OnContextClickListener和SimpleOnGestureListener,其中最后一个包含了前面三个,是前三种的总和。这里主要介绍OnGestureListener和OnDoubleTapListener,OnContextClickListener只包含了onContextClick一种事件监听。2.1 OnGestureListener包含了onDown、onShowPress、onSingleTap、onScroll、onLongPress、onFling六个接口方法