前言
有时候我们需要知道滑动速度来进行一些处理,这就需要用到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
释放。
关注公众号:BennuCTech,获取更多干货!