美文网首页Android知识Android开发
通过VelocityTracker追踪手指的滑动速度

通过VelocityTracker追踪手指的滑动速度

作者: 沐沐小风 | 来源:发表于2017-07-13 15:19 被阅读171次

    通过VelocityTracker可以追踪手指在滑动过程中的速度,包括水平和竖直方向.

    首先,要现在View的onTouchEvent方法中添加要追踪的事件

    VelocityTracker velocityTracker = VelocityTracker.obtarn();

    velocityTracker.addMovement(event);

    接着,当在需要的地方可以这样来获得当前速度

    velocityTracker.computeCurrentVelocity(1000);

    int xVelocity = (int) velocityTracker.getXVelocity();

    int yVelocity = (int) velocityTracker.getYVelocity();

    这里需要注意的是:

    (1)必须先计算速度在获取速度,即必须要先调用computeCurrentVelocity方法才可以调用getX/YVelocity方法

    (2)这个速度是可以为负的,它指的是一段时间内手指所滑过的像素数,当手指逆着Android坐标滑动,结果即为负数了

    (3)computeCurrentVelocity方法的参数是一个时间单元,单位为ms,如果参数为100,手指在100ms内划过了10个像素,水平速度即为10.参数为1000,手指在1000ms内划过了100个像素,那水平速度即为100.其实这两个速度是相等的(假设滑动过程都是匀速),但结果却不同,因为这个速度是相对于这个时间单元参数的,这里需要理解一下.

    最后,当不需要它的时候,要回收内存

    velocityTracker.clear();

    velocityTracker.recycle();

    使用看起来并不复杂,快动手试试吧!

    相关文章

      网友评论

        本文标题:通过VelocityTracker追踪手指的滑动速度

        本文链接:https://www.haomeiwen.com/subject/qwiwhxtx.html