Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 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 ( event)

Add a user's movement to the tracker.

void ()

Reset the velocity tracker back to its initial state.

void (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 (int units)

Equivalent to invoking  with a maximum velocity of Float.MAX_VALUE.

abstract T () float ()

Retrieve the last computed X velocity.

float (int id)

Retrieve the last computed X velocity.

float (int id)

Retrieve the last computed Y velocity.

float ()

Retrieve the last computed Y velocity.

abstract boolean () static  ()

Retrieve a new VelocityTracker object to watch the velocity of a motion.

void ()

Return a VelocityTracker object back to be re-used by others.

abstract void (T element) abstract void (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