VelocityTracker是速度追踪,主要在onTouchEvent(MotionEvent event)的MotionEvent.ACTION_UP获取滑动速率并使用
1.获取当前点击事件的速度
VelocityTracker velocitytracker=VelocityTracker.obtain();
velocitytracker.addMovement(event);
2.获取当前的滑动速度
velocityTracker.computeCurrentVelocity(1000);
float xVelocity = velocityTracker.getXVelocity();
float yVelocity = velocityTracker.getYVelocity();
3.滑动速率说明
速度=(终点位置-起点位置)/时间段
如果速度>0,代表从左往右划动(如果子item更换则是childIndex-1),
如果速度<0,代表从右往左滑动(如果子item更换则是childIndex+1)
从Android开发艺术探索上获知,如果Math.abs(xVelocity)>50,则会更换item,
可是从ViewPager源码查看,不是这个公式,这个自己的项目自己去验证确
4.当不需要的时候,进行回收
velocityTracker.clear(); //直接清除
velocityTracker.recycle(); //滑动速率事件交给其他去获取
网友评论