滑动速度监听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释放。


目录
相关文章
|
6月前
|
小程序 UED 开发者
小程序如何监听页面的滚动事件
小程序如何监听页面的滚动事件
204 0
|
存储
uniApp监听左右滑动事件
uniApp监听左右滑动事件
473 0
|
4月前
|
JavaScript
vue 组件封装 | 随鼠标移动的信息框 (含监听鼠标移动、移出事件,获取元素的宽高、获取浏览器的宽高)
vue 组件封装 | 随鼠标移动的信息框 (含监听鼠标移动、移出事件,获取元素的宽高、获取浏览器的宽高)
48 1
|
4月前
|
JavaScript
vue 监听滚动条行为 | 判断滚动条是向上滚动还是向下滚动
vue 监听滚动条行为 | 判断滚动条是向上滚动还是向下滚动
177 0
|
6月前
|
iOS开发 容器
在做动画的控件不触发手势事件问题及解决方案
在做动画的控件不触发手势事件问题及解决方案
36 0
|
6月前
|
前端开发 JavaScript UED
滚动监听(Scrollspy)
滚动监听(Scrollspy)是Bootstrap框架中的一个实用插件,它可以实时监测滚动条的位置,根据滚动位置自动更新导航项,从而实现与用户滚动行为相关的动态交互。当用户滚动页面时,滚动监听会自动选中导航条中相应的位置,使其高亮显示。这可以帮助用户更好地浏览和导航页面,提高用户体验。
152 31
vue3监听滚轮高度事件
vue3监听滚轮高度事件
336 0
|
iOS开发
iOS开发 - ScrollView滚动时怎么判断滚动停止及滚动的方向
iOS开发 - ScrollView滚动时怎么判断滚动停止及滚动的方向
891 0
有关tabBarController对下面按钮的监听
有关tabBarController对下面按钮的监听
227 0
有关tabBarController对下面按钮的监听