VelocityTracker---速度追蹤

學習記錄自《Android開發藝術探索》.

VelocityTracker

速度追蹤,用於追蹤手指在滑動過程中的速度.

在View的onTouchEvent方法中追蹤手指的速度

 @Override
    public boolean onTouchEvent(MotionEvent event) {
        /**
         * 速度追蹤,用於追蹤手指在滑動過程中的速度
         * 追蹤當前單擊的速度
         */
        VelocityTracker obtain = VelocityTracker.obtain();
        obtain.addMovement(event);
        /**
         * 獲取當前滑動速度
         * 速度是指在一段時間內手指劃過的像素 左->右 正值  右->左 負值
         * 速度 = (終點位置 - 起點位置)/時間段
         */
        int action = event.getAction();
        switch (action) {
            case MotionEvent.ACTION_MOVE:
                obtain.computeCurrentVelocity(1000);//1000毫秒
                float xVelocity = obtain.getXVelocity();
                float yVelocity = obtain.getYVelocity();
                UtilsLog.e(this.getClass().getSimpleName(), "xVelocity" + xVelocity);
                UtilsLog.e(this.getClass().getSimpleName(), "yVelocity" + yVelocity);
                /**
                 * 獲取速度之前必須計算速度 在get之前必須調用compute方法
                 */
                break;
        }
        /**
         * 不使用時 重置並回收內存
         */
        obtain.clear();
        obtain.recycle();//回收
        return super.onTouchEvent(event);
發佈了32 篇原創文章 · 獲贊 6 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章