VelocityTracker簡介

android.view.VelocityTracker主要用跟蹤觸摸屏事件(flinging事件和其餘gestures手勢事件)的速率。 html

addMovement(MotionEvent)函數將Motion event加入到VelocityTracker類實例中.你可使用getXVelocity() getXVelocity()得到橫向和豎向的速率到速率時,可是使用它們以前請先調用computeCurrentVelocity(int)來初始化速率的單位 android

computeCurrentVelocity(int units, float maxVelocity) ide

根據已收集的各點,計算當前的速度
int   unitis 表示速率的基本時間單位。unitis值爲 1 的表示是,一毫秒時間單位內運動了多少個像素, unitis值爲 1000 表示一秒(1000毫秒)時間單位內運動了多少個像素

floatVelocity表示速率的最大值 函數

示例: 
    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  () 函數來得到當前的速度
相關文章
相關標籤/搜索