滑动速度监听VelocityTracker

简介: 有时候我们需要知道滑动速度来进行一些处理,这就需要用到VelocityTracker,通过它我们可以很方便的得到滑动速度。

前言


有时候我们需要知道滑动速度来进行一些处理,这就需要用到VelocityTracker,通过它我们可以很方便的得到滑动速度。


使用


首先创建一个VelocityTracker对象


var tracker = VelocityTracker.obtain()
复制代码


然后在onTouchEvent函数的一开始添加一下:


override fun onTouchEvent(event: MotionEvent?): Boolean {
    tracker.addMovementEvent(event)
    ...
复制代码


这样就开始监听滑动了,然后我们在ACTION_UP事件中收集速度,代码如下:


MotionEvent.ACTION_UP -> {
    tracker.computeCurrentVelocity(1000)
    val xVelocity = tracker.xVelocity
    val yVelocity = tracker.yVelocity
    ...
    tracker.clear()
}
复制代码


先执行computeCurrentVelocity函数,它的参数是我们获取的速度的单位,1表示 1像素/毫秒,所以代码中1000则代码速度单位时1像素/秒。

然后通过getXVelocitygetYVelocity来分别获取两个方向上的速度即可。

最后一定要执行clear来重置一下。

如果确定不再使用这个VelocityTracker,可以执行recycle释放。


目录
相关文章
|
5月前
|
小程序 UED 开发者
小程序如何监听页面的滚动事件
小程序如何监听页面的滚动事件
146 0
|
11月前
|
存储
uniApp监听左右滑动事件
uniApp监听左右滑动事件
373 0
|
3月前
|
JavaScript
vue 组件封装 | 随鼠标移动的信息框 (含监听鼠标移动、移出事件,获取元素的宽高、获取浏览器的宽高)
vue 组件封装 | 随鼠标移动的信息框 (含监听鼠标移动、移出事件,获取元素的宽高、获取浏览器的宽高)
40 1
|
3月前
|
JavaScript
vue 监听滚动条行为 | 判断滚动条是向上滚动还是向下滚动
vue 监听滚动条行为 | 判断滚动条是向上滚动还是向下滚动
97 0
|
5月前
|
前端开发 JavaScript UED
滚动监听(Scrollspy)
滚动监听(Scrollspy)是Bootstrap框架中的一个实用插件,它可以实时监测滚动条的位置,根据滚动位置自动更新导航项,从而实现与用户滚动行为相关的动态交互。当用户滚动页面时,滚动监听会自动选中导航条中相应的位置,使其高亮显示。这可以帮助用户更好地浏览和导航页面,提高用户体验。
143 31
|
10月前
Vue3监听页面是否全屏(监听与自动退出全屏)
Vue3监听页面是否全屏(监听与自动退出全屏)
360 0
有关tabBarController对下面按钮的监听
有关tabBarController对下面按钮的监听
219 0
有关tabBarController对下面按钮的监听
|
Android开发
EditText默认不获取焦点,隐藏软键盘,焦点监听,输入监听,样式设置
EditText默认不获取焦点,隐藏软键盘,焦点监听,输入监听,样式设置
791 0
|
Dart 开发者
【Flutter】监听滚动动作 控制组件 透明度渐变 ( 移除顶部状态栏空白 | 帧布局组件 | 透明度组件 | 监听滚动组件 )(三)
【Flutter】监听滚动动作 控制组件 透明度渐变 ( 移除顶部状态栏空白 | 帧布局组件 | 透明度组件 | 监听滚动组件 )(三)
226 0
【Flutter】监听滚动动作 控制组件 透明度渐变 ( 移除顶部状态栏空白 | 帧布局组件 | 透明度组件 | 监听滚动组件 )(三)