VelocityTracker简单介绍

VelocityTracker简单介绍

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

參照自: 
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毫秒)时间单位内运动了多少个像素
float
Velocity表示速率的最大值

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  ()
函数来获得当前的速度


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118242.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号