美文网首页
高级UI<第四十二篇>:滑动速度追踪神器:VelocityTra

高级UI<第四十二篇>:滑动速度追踪神器:VelocityTra

作者: NoBugException | 来源:发表于2020-02-14 02:11 被阅读0次

    当需要跟踪触摸屏事件的速度的时候,可以使用VelocityTracker来追踪滑动速度,下面来介绍下VelocityTracker的基本使用步骤。

    【第一步】 创建对象

                //创建惯性滑动速度追踪类对象
                velocityTracker = VelocityTracker.obtain();
    

    使用obtain()方法获取实例。

    【第二步】 追踪速度

                //将事件加入到VelocityTracker类实例中
                velocityTracker.addMovement(event);
                //计算1秒内滑动的像素个数
                velocityTracker.computeCurrentVelocity(1000);
                //X轴方向的速度
                xVelocity = (int) velocityTracker.getXVelocity();
                //Y轴方向的速度
                yVelocity = (int) velocityTracker.getYVelocity();
    

    都加了注释,不需要赘述了。

    【第三步】 回收资源

                //回收
                velocityTracker.clear();
                velocityTracker.recycle();
    

    VelocityTracker的使用只有三步,虽然比较简单,但是必须要知道有这个方法可以计算滑动速度,也是研究fling事件的基础。

    最后,贴出完整核心代码

    @Override
    public boolean onTouchEvent(MotionEvent event) {
    
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                //创建惯性滑动速度追踪类对象
                velocityTracker = VelocityTracker.obtain();
                break;
            case MotionEvent.ACTION_MOVE:
                //将事件加入到VelocityTracker类实例中
                velocityTracker.addMovement(event);
                //计算1秒内滑动的像素个数
                velocityTracker.computeCurrentVelocity(1000);
                //X轴方向的速度
                xVelocity = (int) velocityTracker.getXVelocity();
                //Y轴方向的速度
                yVelocity = (int) velocityTracker.getYVelocity();
    
                break;
            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL:
                //回收
                velocityTracker.clear();
                velocityTracker.recycle();
                break;
        }
        return true;
    }
    

    [本章完...]

    相关文章

      网友评论

          本文标题:高级UI<第四十二篇>:滑动速度追踪神器:VelocityTra

          本文链接:https://www.haomeiwen.com/subject/qpwrfhtx.html