前言
有时候我们需要知道滑动速度来进行一些处理,这就需要用到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像素/秒。
然后通过getXVelocity
和getYVelocity
来分别获取两个方向上的速度即可。
最后一定要执行clear
来重置一下。
如果确定不再使用这个VelocityTracker,可以执行recycle
释放。