GestureDetector 完全解析
个人原创
OnDown(MotionEvent e):用户触发DonenEvent就会执行
onShowPress(MotionEvent e):用户触发DonenEvent后,在很短大概0.5秒内,没有触发其他MoveEventh和UpEvent事件,会执行
onLongPress(MotionEvent e):用户触发DonenEvent后,在很短大概1.5秒内,没有触发其他MoveEventh和UpEvent事件,会执行
触发顺序:
onDown->onShowPress->onLongPress
onSingleTapUp(MotionEvent e):用户触发DonenEvent后,在很短大概1秒内,只触发UpEvent而没有出发触发MoveEventh时执行,从时间上能判断出在onSingleTapUp之前可能执行onShowPress,但一定不执行onLongPress
触发顺序:
点击一下非常快的(不滑动)Touchup:
onDown->onSingleTapUp->onSingleTapConfirmed
点击一下稍微慢点的(不滑动)Touchup:
onDown->onShowPress->onSingleTapUp->onSingleTapConfirmed
onScroll(MotionEvent e1, MotionEvent e2,float distanceX, float distanceY):用户触发DonenEvent后,在onLongPress执行之前触发MoveEventh时执行,此后MoveEventh都会触发onScroll执行
e1:第1个ACTION_DOWN MotionEvent
e2:最后一个ACTION_MOVE MotionEvent
distanceX:上次MoveEventh到这次MoveEventh在x上移动距离
distanceY:上次MoveEventh到这次MoveEventh在y上移动距离
滑屏:手指触动屏幕后,稍微滑动后立即松开
onDown-----》onScroll----》onScroll----》onScroll----》………----->onFling
拖动
onDown------》onScroll----》onScroll
onDown------》onScroll----》onScroll------》onFiling
注意:有的时候会触发onFiling,但是有的时候不会触发,这是因为触发onFiling需要拖动达到一定速度才会执行。
onFling(MotionEvent e1, MotionEvent e2, float velocityX,float velocityY) :用户触发 onScroll事件后,在触发UpEvent时,拖动达到一定速度时触发
参数解释:
e1:第1个ACTION_DOWN MotionEvent
e2:最后一个ACTION_MOVE MotionEvent
velocityX:X轴上的移动速度,像素/秒
velocityY:Y轴上的移动速度,像素/秒
onSingleTapConfirmed(MotionEvent e):单击确认事件 触发OnsingleTapUp事件后,在很短大概0.5秒内没有再次顺序触发 OnDown和UpEvent事件时执行
触发顺序是:OnDown->OnsingleTapUp->OnsingleTapConfirmed
onDoubleTap(MotionEvent e):双击事件 触发OnsingleTapUp事件后,在很短大概0.5秒内再次顺序触发 OnDown和UpEvent事件时执行, 注意在 大概0.5秒内一定触发DownEvent和UpEventUpEvent 事件,可能触发MoveEventhMoveEvent事件UpEventOnDown和UpEvent事件OnDown和UpEvent事件UpEvent事件
onDoubleTapEvent(MotionEvent e): 在触发onDoubleTap事件后执行,将在OnsingleTapUp事件和onDoubleTap事件中间所触发的所有EventTouch事件一个个处理,
触发顺序是:OnDown->OnsingleTapUp->(中间一定执行DownEventDownEvent和UpEvent可能执行MoveEvent事件OnDown可能)->onDoubleTap->onDoubleTapEvent(DownEventDownEvent )触发至少两次次,参数依次为中间发生的事件->onDoubleTapEvent(DownEventDownEvent downEvent)
相关文章
- C++PE文件格式解析类(轻松制作自己的PE文件解析器)
- 异步启动框架Alpha完全解析
- Android DiskLruCache完全解析,硬盘缓存的最佳方案
- shell脚本获取进程ID并杀死的实现及问题解析
- 快应用如何避免JSON.parse()解析出错
- Vue中v-model解析、sync修饰符解析
- GreenDao3使用完全解析
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .
- Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)
- Android事件分发机制完全解析,带你从源码的角度彻底理解(上)
- 从源码的角度解析View的事件分发
- (转)深入解析TensorFlow中滑动平均模型与代码实现
- Android 开发框架源码解析:“Retrofit、Okhttp、ButterKnife、Glide....”
- Hadoop NameNode元数据相关文件目录解析
- 华为OD机试 - 异常的打卡记录(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】
- 华为OD机试 -货币单位换算(Python) | 机试题+算法思路+考点+代码解析 【2023】
- Android深入理解Context(三)Context完全解析
- Django之反向解析(十八)