VelocityTracker简单介绍
生活随笔
收集整理的這篇文章主要介紹了
VelocityTracker简单介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
翻譯自: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)來初始化速率的單位 。 主要函數
演示樣例:? ? ? 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 ?()函數來獲得當前的速度
android.view.VelocityTracker主要用跟蹤觸摸屏事件(flinging事件和其它gestures手勢事件)的速率。用addMovement(MotionEvent)函數將Motion event增加到VelocityTracker類實例中.你能夠使用getXVelocity()?或getXVelocity()獲得橫向和豎向的速率到速率時,可是使用它們之前請先調用computeCurrentVelocity(int)來初始化速率的單位 。 主要函數
| 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) |
總結
以上是生活随笔為你收集整理的VelocityTracker简单介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux系统学习之vi编辑
- 下一篇: 基于双TMS320C6678+双XC6V