VelocityTracker顾名思义即速度跟踪,在android中主要应用于touch event, VelocityTracker通过跟踪一连串事件实时计算出
当前的速度,这样的用法在android系统空间中随处可见,比如Gestures中的Fling, Scrolling等,下面简单介绍一下用法。
- //获取一个VelocityTracker对象, 用完后记得回收
- //回收后代表你不需要使用了,系统将此对象在此分配到其他请求者
- static public VelocityTracker obtain();
- public void recycle();
- //计算当前速度, 其中units是单位表示, 1代表px/毫秒, 1000代表px/秒, ..
- //maxVelocity此次计算速度你想要的最大值
- public void computeCurrentVelocity(int units, float maxVelocity);
- //经过一次computeCurrentVelocity后你就可以用一下几个方法获取此次计算的值
- //id是touch event触摸点的ID, 来为多点触控标识,有这个标识在计算时可以忽略
- //其他触点干扰,当然干扰肯定是有的
- public float getXVelocity();
- public float getYVelocity();
- public float getXVelocity(int id);
- public float getYVelocity(int id);
下面是我写的一个简单Demo:
代码很简单,我们可以求出move过程中的伪瞬时速度, 这样在做很多控件的时候都是可以用到的,比如系统Launcher的分页,
ScrollView滑动等, 可根据此时的速度来计算ACTION_UP后的减速运动等。实现一些非常棒的效果。
阅读(14121) | 评论(1) | 转发(0) |