Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android VelocityTracker簡介

Android VelocityTracker簡介

編輯:Android開發實例

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毫秒)時間單位內運動了多少個像素 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) 示例:      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  ()函數來獲得當前的速度   翻譯自:http://developer.android.com/reference/android/view/VelocityTracker.html

參照自: http://blog.jrj.com.cn/4586793646,5298605a.html 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved