1、TouchSlop用来判断手势滑动的距离才是Fling事件
private int mTouchSlop;
private int mMinimumVelocity;
protected int mMaximumVelocity;
final ViewConfiguration configuration = ViewConfiguration.get(context);
//获取TouchSlop, 用来判断用户滑动了多少个像素点才是滑动
mTouchSlop = ViewConfigurationCompat.getScaledPagingTouchSlop(configuration); //48
mMinimumVelocity = configuration.getScaledMinimumFlingVelocity(); //75
mMaximumVelocity = configuration.getScaledMaximumFlingVelocity(); //12000
2、获取触摸滑动的速率
/**
*
* 获取滑动的速度
*/
protected VelocityTracker mVelocityTracker;
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (mVelocityTracker == null) {
mVelocityTracker = VelocityTracker.obtain();
}
mVelocityTracker.addMovement(ev);
switch (action & MotionEventCompat.ACTION_MASK) {
case MotionEvent.ACTION_UP:
final VelocityTracker velocityTracker = mVelocityTracker;
velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
int initialVelocity = (int) VelocityTrackerCompat.getXVelocity(
velocityTracker, mActivePointerId);
break;
if (mVelocityTracker != null) {
mVelocityTracker.recycle();
mVelocityTracker = null;
}
return true;
}