Android VelocityTracker获取滑动速度
2017-02-16 17:50
423 查看
官方介绍
/** * Helper for tracking the velocity of touch events, for implementing flinging and other such gestures. * Use obtain to retrieve a new instance of the class when you are going to begin tracking. * Put the motion events you receive into it with addMovement(MotionEvent). * When you want to determine the velocity call computeCurrentVelocity(int) and then call getXVelocity(int) and getYVelocity(int) to retrieve the velocity for each pointer id. */
android.view.VelocityTracker主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用addMovement(MotionEvent)函数将Motion event加入到VelocityTracker类实例中.你可以使用getXVelocity() 或getXVelocity()获得横向和竖向的速率到速率时,但是使用它们之前请先调用computeCurrentVelocity(int)来初始化速率的单位 。
使用步骤
1.声明
private VelocityTracker mVelocityTracker;
2.初始化
private void init() { mVelocityTracker = VelocityTracker.obtain(); }
3.在onTouchEvent的开头添加滑动事件
public boolean onTouchEvent(MotionEvent event) { mVelocityTracker.addMovement(event); ... }
当你需要跟踪触摸屏事件的速度的时候,使用obtain()方法来获得VelocityTracker类的一个实例对象
在onTouchEvent回调函数中,使用addMovement(MotionEvent)函数将当前的移动事件传递给VelocityTracker对象
使用computeCurrentVelocity (int units)函数来计算当前的速度,使用getXVelocity ()、 getYVelocity ()函数来获得当前的速度
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());
4.在onDetachedFromWindow中回收
@Override protected void onDetachedFromWindow() { mVelocityTracker.recycle(); super.onDetachedFromWindow(); }
相关文章推荐
- android velocityTracker滑动速度检测器简单使用
- 利用VelocityTracker获取手指在屏幕上的滑动速度
- Android VelocityTracker 速度监测
- android VelocityTracker和 GestureDetector滑动监听工具类
- 滑动动速度跟踪类VelocityTracker介绍
- Android VelocityTracker 速度跟踪器
- 手势事件:滑动动速度跟踪类VelocityTracker介绍
- android VelocityTracke 获取x轴 y轴 的速度
- Android中的VelocityTracker(速度追踪器)的介绍
- android 手势滑动(ViewGroup, Scroller, VelocityTracker, ViewConfiguration)
- 手势事件:滑动动速度跟踪类VelocityTracker介绍
- Android VelocityTracker简介
- android gallery 滑动速度控制
- android 如何控制Gallery 滑动速度
- VelocityTracker 和 ViewConfiguration ,系统认为的滑动界限和移动界限
- VelocityTracker监控速度!!!
- VelocityTracker监控速度
- VelocityTracker监控速度!!!
- Android Gallery获取滑动停止的位置
- Android控制ScrollView滑动速度案例