VelocityTracker 速度跟踪api

本文深入解析了VelocityTracker类的使用方法,包括如何跟踪触摸事件的速度,实现投掷等手势。介绍了VelocityTracker的主要方法,如addMovement、clear、computeCurrentVelocity、getXVelocity、getYVelocity和obtain。同时,提供了在触摸事件中正确使用这些方法的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

帮助器用于跟踪触摸事件的速度,用于实现投掷和其他此类手势。用于obtain()在开始跟踪时检索类的新实例。将收到的动作事件放入其中 addMovement(MotionEvent)。当你想确定速度调用 computeCurrentVelocity(int)然后调用getXVelocity(int) 并getYVelocity(int)检索每个指针id的速度。

                                                                                               公共方法                                                                    

         void

addMovement(MotionEvent event)

为 VelocityTracker 传入触摸事件(包括ACTION_DOWNACTION_MOVEACTION_UP等),这样 VelocityTracker 才能在调用了 computeCurrentVelocity 方法后,正确的取得当前的速度。注:一般在onTouchEvent(MotionEvent event) 里

          void

clear()

重置 VelocityTracker 回其初始状态。

         void

computeCurrentVelocity(int units)

根据已经传入的触摸事件计算出当前的速度,可以通过getXVelocity 或者 getYVelocity进行获取对应方向上的速度。值得注意的是,计算出的速度值不超过Float.MAX_VALUE

注:一般在

case MotionEvent.ACTION_MOVE:
    mVelocity.computeCurrentVelocity(VELOCITY_DURATION);

参数

单位您希望速度输入的单位。值为1表示每毫秒像素数,1000表示每秒像素数等。maxVelocity可以通过此方法计算的最大速度。必须在与units参数相同的单位中声明此值。该值必须为正数。

       float

getXVelocity()

获取最后计算的水平方向速度,使用此方法前需要记得先调用computeCurrentVelocity

       float

getXVelocity(int id)

获取对应的手指id最后计算的水平方向速度,使用此方法前需要记得先调用computeCurrentVelocity

       float

getYVelocity(int id)

获取对应的手指id最后计算的垂直方向速度,使用此方法前需要记得先调用computeCurrentVelocity

       float

getYVelocity()

获取最后计算的垂直方向速度,使用此方法前需要记得先调用computeCurrentVelocity

static VelocityTracker

obtain()

获取一个 VelocityTracker 对象。VelocityTracker的构造函数是私有的,也就是不能通过new来创立

       void

recycle()

回收 VelocityTracker 实例。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值