0
点赞
收藏
分享

微信扫一扫

VelocityTracker简介

我是小小懒 2023-02-08 阅读 148

 


android.view.VelocityTracker 主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用 addMovement(MotionEvent) 函数将Motion event加入到VelocityTracker类实例中.你可以使用 getXVelocity()  或 getXVelocity() 获得横向和竖向的速率到速率时,但是使用它们之前请先调用 computeCurrentVelocity (int) 来初始化速率的单位 。



主要函数

VelocityTracker简介_android

示例: 



   

private VelocityTracker mVelocityTracker;//生命变量 
//在onTouchEvent(MotionEvent ev)中
if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();//获得VelocityTracker类实例
}
mVelocityTracker.addMovement(ev);//将事件加入到VelocityTracker类实例中
//判断当ev事件是MotionEvent.ACTION_UP时:计算速率
final VelocityTracker velocityTracker = mVelocityTracker;
// 1000 provides pixels per second
velocityTracker.computeCurrentVelocity(1, (float)0.01); //设置maxVelocity值为0.1时,速率大于0.01时,显示的速率都是0.01,速率小于0.01时,显示正常
Log.i("test","velocityTraker"+velocityTracker.getXVelocity());
velocityTracker.computeCurrentVelocity(1000); //设置units的值为1000,意思为一秒时间内运动了多少个像素
Log.i("test","velocityTraker"+velocityTracker.getXVelocity());





大体的使用是这样的:



当你需要跟踪触摸屏事件的速度的时候,使用 obtain() 方法来获得 VelocityTracker 类的一个实例对象



在 onTouchEvent 回调函数中,使用 addMovement(MotionEvent) 函数将当前的移动事件传递给 VelocityTracker 对象



使用 computeCurrentVelocity  (int units) 函数来计算当前的速度,使用  getXVelocity  () 、  getYVelocity  () 函数来获得当前的速度


 

举报

相关推荐

0 条评论