在Android View体系(二)实现View滑动的六种方法这篇文章中我们讲到了用Scroller来实现View的滑动,所以这篇文章我们就不介绍Scroller是如何使用的了,本篇就从源码来分析下Scroller为何能够实现View的滑动。

1.Scroller的构造函数

要想使用Scroller,必须先调用new Scroller(),我们先来看看Scroller的构造函数:

/**
  * Create a Scroller with the default duration and interpolator.
  */
 public Scroller(Context context) {
     this(context, null);
 }

 /**
  * Create a Scroller with the specified interpolator. If the interpolator is
  * null, the default (viscous) interpolator will be used. "Flywheel" behavior will
  * be in effect for apps targeting Honeycomb or newer.
  */
 public Scroller(Context context, Interpolator interpolator) {
     this(context, interpolator,
             context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.HONEYCOMB);
 }

 /**
  * Create a Scroller with the specified interpolator. If the interpolator is
  * null, the default (viscous) interpolator will be used. Specify whether or
  * not to support progressive "flywheel" behavior in flinging.
  */
 public Scroller(Context context, Interpolator interpolator, boolean flywheel) {
     mFinished = true;
     if (interpolator == null) {
         mInterpolator = new ViscousFluidInterpolator();
     } else {
         mInterpolator = interpolator;
     }
     mPpi = context.getResources().getDisplayMetrics().density * 160.0f;
     mDeceleration = computeDeceleration(ViewConfiguration.getScrollFriction());
     mFlywheel = flywheel;

     mPhysicalCoeff = computeDeceleration(0.84f); // look and feel tuning
 }
View Code

相关文章: