@Override
 public void onAnimationEnd(Animator animation) {
   super.onAnimationEnd(animation);
   animationInProgress = false;
   // tell the caller that the animation is over
   if (animationEndListener != null) {
     animationEndListener.onAnimationComplete(animation);
   }
 }
 @Override
 public void computeScroll() {
   super.computeScroll();
   if (mScroller.computeScrollOffset()) {
     scrollTo(mScroller.getCurrX(), 0);
     if (DEBUG) LogHelper.LOGD(TAG, "mScroller.getCurrX()=" + mScroller.getCurrX());
     postInvalidate();
   } else if (mStartAnimation && mScroller.isFinished()) { // 结束动画
     if (mFinishListener != null) {
       mFinishListener.finishAnimation(isLeft);
     }
     if (DEBUG)
       LogHelper.LOGD(TAG, "mStartAnimation && mScroller.isFinished()=" + mScroller.getCurrX());
     mStartAnimation = false;
   }
 }