VelocityTracker简介
2016-07-01 11:34
253 查看
翻译自:http://developer.android.com/reference/android/view/VelocityTracker.html
参照自: http://blog.jrj.com.cn/4586793646,5298605a.html
android.view.VelocityTracker主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用addMovement(MotionEvent)函数将Motion event加入到VelocityTracker类实例中.你可以使用getXVelocity() 或getXVelocity()获得横向和竖向的速率到速率时,但是使用它们之前请先调用computeCurrentVelocity(int)来初始化速率的单位
。
主要函数
示例:
大体的使用是这样的:
当你需要跟踪触摸屏事件的速度的时候,使用obtain()方法来获得VelocityTracker类的一个实例对象
在onTouchEvent回调函数中,使用addMovement(MotionEvent)函数将当前的移动事件传递给VelocityTracker对象
使用computeCurrentVelocity (int units)函数来计算当前的速度,使用 getXVelocity ()、 getYVelocity
()函数来获得当前的速度
转自:http://blog.csdn.net/hudashi/article/details/7352157
参照自: http://blog.jrj.com.cn/4586793646,5298605a.html
android.view.VelocityTracker主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用addMovement(MotionEvent)函数将Motion event加入到VelocityTracker类实例中.你可以使用getXVelocity() 或getXVelocity()获得横向和竖向的速率到速率时,但是使用它们之前请先调用computeCurrentVelocity(int)来初始化速率的单位
。
主要函数
Public Methods | |
---|---|
void | addMovement(MotionEvent event) Add a user's movement to the tracker. |
void | clear() Reset the velocity tracker back to its initial state. |
void | computeCurrentVelocity(int units, float maxVelocity) Compute the current velocity based on the points that have been collected. int unitis表示速率的基本时间单位。unitis值为1的表示是,一毫秒时间单位内运动了多少个像素, unitis值为1000表示一秒(1000毫秒)时间单位内运动了多少个像素 floatVelocity表示速率的最大值 |
void | computeCurrentVelocity(int units) Equivalent to invoking computeCurrentVelocity(int, float)with a maximum velocity of Float.MAX_VALUE. |
abstract T | getNextPoolable() |
float | getXVelocity() Retrieve the last computed X velocity. |
float | getXVelocity(int id) Retrieve the last computed X velocity. |
float | getYVelocity(int id) Retrieve the last computed Y velocity. |
float | getYVelocity() Retrieve the last computed Y velocity. |
abstract boolean | isPooled() |
static VelocityTracker | obtain() Retrieve a new VelocityTracker object to watch the velocity of a motion. |
void | recycle() Return a VelocityTracker object back to be re-used by others. |
abstract void | setNextPoolable(T element) |
abstract void | setPooled(boolean isPooled) |
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
()函数来获得当前的速度
转自:http://blog.csdn.net/hudashi/article/details/7352157
相关文章推荐
- [leetcode] 100. Same Tree
- mapreduce(三):自定义二次排序流程实例详解
- Java正则表达式入门
- 文件上传练习
- eclipse启动tomcat, http://localhost:8080无法访问
- CardView的介绍和使用
- Android AIDL进程间通信介绍
- PHP四种传参方式
- 记linux shell的两个小技巧:shell数组和字符串判断
- 记linux shell的两个小技巧:shell数组和字符串判断
- Egret togglebutton 初始设置
- mysql 语句大全
- jQuery Mobile基础学习(2)(控件)
- php投票系统之增加与删除投票(管理员篇)
- JAVA语言运算符
- Android开发中,那些让你觉得相见恨晚的方法、类或接口
- 简单介绍一下ODI的几个基本概念
- ODI中的CDC
- Java框架搭建-Maven、Mybatis、Spring MVC整合搭建
- 不再以讹传讹,GET和POST的真正区别