[學習總結]2、android中的VelocityTracker(獲得速率用的類)

來源:互聯網
上載者:User

標籤:android   des   style   blog   class   code   

參考資料:http://blog.jrj.com.cn/4586793646,5298605a.html 感謝這位兄弟!

android.view.VelocityTracker主要用跟蹤觸控螢幕事件(flinging事件和其他gestures手勢事件)的速率,為up之後做一些效果用的。

1,用obtain()函數來獲得類的執行個體。

2,常用的一些方法:

  2.1,使用addMovement(MotionEvent event)函數將當前的移動事件傳遞給VelocityTracker對象,參數是事件對象。

  2.2,使用 computeCurrentVelocity  (int units)函數來計算當前的速度  參數units:  你使用的速率單位1的意思是,以一毫秒運動了多少個像素的速率, 1000表示 一秒

    時間內運動了多少個像素。 單位是毫秒。

  2.3,computeCurrentVelocity(int units, float maxVelocity) 參數1同上,參數maxVelocity: 這個方法能計算出事件的最大速率。如果計算出來的速率大於maxVelocity

    則得到的速率就是maxVelocity,小於maxVelocity則為真正計算出來的速率。

    例如:CurrentVelocity =CurrentVelocity>maxVelocity?maxVelocity:CurrentVelocity;

  2.4,使用 getXVelocity  ()、 getYVelocity  ()函數來獲得當前橫向和縱向的速度

3,例子demo:

  

 1 private VelocityTracker mVelocityTracker;//生命變數  2          3         //在onTouchEvent(MotionEvent ev)中  4  5  6         if (mVelocityTracker == null) {  7                 mVelocityTracker = VelocityTracker.obtain();//獲得VelocityTracker類執行個體  8         }  9         mVelocityTracker.addMovement(ev);//將事件加入到VelocityTracker類執行個體中 10 11 12         //判斷當ev事件是MotionEvent.ACTION_UP時:計算速率 13         final VelocityTracker velocityTracker = mVelocityTracker; 14         // 1000 provides pixels per second 15         velocityTracker.computeCurrentVelocity(1, (float)0.01); //設定maxVelocity值為0.1時,速率大於0.01時,顯示的速率都是0.01,速率小於0.01時,顯示正常 16         Log.i("test","velocityTraker"+velocityTracker.getXVelocity()); 17                                 18         velocityTracker.computeCurrentVelocity(1000); //設定units的值為1000,意思為一秒時間內運動了多少個像素 19         Log.i("test","velocityTraker"+velocityTracker.getXVelocity());

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.