public final class VelocityTracker
extends Object
java.lang.Object | |
↳ | android.view.VelocityTracker |
助手用于跟踪触摸事件的速度,用于实现投掷和其他手势。 当您要开始跟踪时,请使用obtain()
检索课程的新实例。 将您收到的动作事件放入addMovement(MotionEvent)
。 当你想确定速度调用computeCurrentVelocity(int)
,然后调用getXVelocity(int)
和getYVelocity(int)
来检索每个指针ID的速度。
Public methods |
|
---|---|
void |
addMovement(MotionEvent event) 将用户的移动添加到跟踪器。 |
void |
clear() 将速度追踪器重置回初始状态。 |
void |
computeCurrentVelocity(int units) 相当于调用 |
void |
computeCurrentVelocity(int units, float maxVelocity) 根据已收集的点计算当前速度。 |
float |
getXVelocity(int id) 检索上次计算的X速度。 |
float |
getXVelocity() 检索上次计算的X速度。 |
float |
getYVelocity() 检索上次计算的Y速度。 |
float |
getYVelocity(int id) 检索上次计算的Y速度。 |
static VelocityTracker |
obtain() 检索一个新的VelocityTracker对象来观察运动的速度。 |
void |
recycle() 返回VelocityTracker对象以供其他人重新使用。 |
Protected methods |
|
---|---|
void |
finalize() 当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
void addMovement (MotionEvent event)
将用户的移动添加到跟踪器。 您应该为此初始化ACTION_DOWN
,以下ACTION_MOVE
事件和最终的ACTION_UP
。 但是,您可以将其称为您希望的任何事件。
Parameters | |
---|---|
event |
MotionEvent : The MotionEvent you received and would like to track. |
void computeCurrentVelocity (int units)
相当于调用 computeCurrentVelocity(int, float)
与Float.MAX_VALUE的最大速度。
Parameters | |
---|---|
units |
int
|
void computeCurrentVelocity (int units, float maxVelocity)
根据已收集的点计算当前速度。 只有在您实际想要检索速度信息时才调用它,因为它相对昂贵。 然后您可以使用getXVelocity()
和getYVelocity()
检索速度。
Parameters | |
---|---|
units |
int : The units you would like the velocity in. A value of 1 provides pixels per millisecond, 1000 provides pixels per second, etc. |
maxVelocity |
float : The maximum velocity that can be computed by this method. This value must be declared in the same unit as the units parameter. This value must be positive. |
float getXVelocity (int id)
检索上次计算的X速度。 在调用此函数之前,您必须先调用computeCurrentVelocity(int)
。
Parameters | |
---|---|
id |
int : Which pointer's velocity to return. |
Returns | |
---|---|
float |
The previously computed X velocity. |
float getXVelocity ()
检索上次计算的X速度。 在调用此函数之前,您必须先调用computeCurrentVelocity(int)
。
Returns | |
---|---|
float |
The previously computed X velocity. |
float getYVelocity ()
检索上次计算的Y速度。 在调用此函数之前,您必须先调用computeCurrentVelocity(int)
。
Returns | |
---|---|
float |
The previously computed Y velocity. |
float getYVelocity (int id)
检索上次计算的Y速度。 在调用此函数之前,您必须先调用computeCurrentVelocity(int)
。
Parameters | |
---|---|
id |
int : Which pointer's velocity to return. |
Returns | |
---|---|
float |
The previously computed Y velocity. |
VelocityTracker obtain ()
检索一个新的VelocityTracker对象来观察运动的速度。 完成后请务必致电recycle()
。 通常应该只在跟踪移动时维护一个活动对象,以便VelocityTracker可以在其他地方重新使用。
Returns | |
---|---|
VelocityTracker |
Returns a new VelocityTracker. |
void finalize ()
当垃圾收集确定没有更多对该对象的引用时,由对象上的垃圾回收器调用。 子类会覆盖finalize
方法以处置系统资源或执行其他清理。
的常规协定finalize
是,它被调用,如果当在Java TM虚拟机已确定不再有由该目的可以通过还没有死亡,除了作为一个动作的结果的任何线程访问的任何手段取决于某些其他可以完成的对象或类别的最终定稿。 方法finalize
可以采取任何行动,包括使这个对象再次可用于其他线程; 然而, finalize
的通常目的是在对象不可撤销地丢弃之前执行清理操作。 例如,表示输入/输出连接的对象的finalize方法可能会执行显式I / O事务,以在永久丢弃该对象之前中断连接。
类Object
的finalize
方法Object
执行特殊操作; 它只是正常返回。 Object
子类可能会覆盖此定义。
Java编程语言不保证哪个线程将为任何给定对象调用finalize
方法。 但是,保证调用finalize的线程在调用finalize时不会保留任何用户可见的同步锁。 如果finalize方法引发未捕获的异常,则忽略该异常,并终止该对象的终止。
在针对某个对象调用了 finalize
方法之后,在Java虚拟机再次确定不再有任何途径可以通过任何还没有死亡的线程访问此对象,包括可能的操作通过准备完成的其他对象或类别,此时该对象可能被丢弃。
对于任何给定的对象,Java虚拟机永远不会多次调用 finalize
方法。
finalize
方法抛出的任何异常 finalize
导致此对象的终止被暂停,但会被忽略。
Throws | |
---|---|
Throwable |