Code example for VelocityTracker

Methods: addMovement, clear, computeCurrentVelocity, getXVelocity, getYVelocity, recycle

0
                mPointerId = event.getPointerId(0);
                break; 
 
            case MotionEvent.ACTION_MOVE:
                //求伪瞬时速度 
                verTracker.computeCurrentVelocity(1000, mMaxVelocity);
                final float velocityX = verTracker.getXVelocity(mPointerId);
                final float velocityY = verTracker.getYVelocity(mPointerId);
                recodeInfo(velocityX, velocityY);
                break; 
 
            case MotionEvent.ACTION_UP:
                releaseVelocityTracker(); 
                break; 
 
            case MotionEvent.ACTION_CANCEL:
                releaseVelocityTracker(); 
                break; 
 
            default: 
                break; 
        } 
        return super.onTouchEvent(event);
    } 
 
    /** 
     * 
     * @param event 向VelocityTracker添加MotionEvent 
     * 
     * @see android.view.VelocityTracker#obtain() 
     * @see android.view.VelocityTracker#addMovement(MotionEvent) 
     */ 
    private void acquireVelocityTracker(final MotionEvent event) {
        if(null == mVelocityTracker) {
            mVelocityTracker = VelocityTracker.obtain();
        } 
        mVelocityTracker.addMovement(event);
    } 
 
    /** 
          * 释放VelocityTracker 
          * 
          * @see android.view.VelocityTracker#clear() 
          * @see android.view.VelocityTracker#recycle() 
          */ 
    private void releaseVelocityTracker() { 
        if(null != mVelocityTracker) {
            mVelocityTracker.clear();
            mVelocityTracker.recycle();
            mVelocityTracker = null;
        } 
    } 
 
    private static final String sFormatStr = "velocityX=%f\nvelocityY=%f";