<?xmlversion="1.0"encoding="utf-8"?><setxmlns:Android="http://schemas.android.com/apk/res/android"Android:interpolator="@android:anim/decelerate_interpolator"><scaleAndroid:fromXScale="2.0"android:toXScale="1.0"android:fromYScale="2.0"android:toYScale="1.0"android:pivotX="50%p"android:pivotY="50%p"android:duration="@android:integer/config_mediumAnimTime"/></set>


可能有很多人不理解其中的android:interpolator="@android:anim/decelerate_interpolator"是什么含义,文档里说的也不太清楚,其实很简单,看下面:
interpolator定义一个动画的变化率(the rate of change)。这使得基本的动画效果(alpha, scale, translate, rotate)得以加速,减速,重复等。

用通俗的一点的话理解就是:动画的进度使用 Interpolator 控制。Interpolator 定义了动画的变化速度,可以实现匀速、正加速、负加速、无规则变加速等。Interpolator 是基类,封装了所有 Interpolator 的共同方法,它只有一个方法,即 getInterpolation (float input),该方法 maps a point on the timeline to a multiplier to be applied to the transformations of an animation。Android 提供了几个 Interpolator 子类,实现了不同的速度曲线,如下:

AccelerateDecelerateInterpolator 在动画开始与介绍的地方速率改变比较慢,在中间的时侯加速
AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速
CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始减速
LinearInterpolator 在动画的以均匀的速率改变
对于 LinearInterpolator ,变化率是个常数,即 f (x) = x.

publicfloatgetInterpolation(floatinput){returninput;}


Interpolator其他的几个子类,也都是按照特定的算法,实现了对变化率。还可以定义自己的 Interpolator 子类,实现抛物线、自由落体等物理效果。


更多相关文章

  1. Android新控件MotionLayout介绍(三)
  2. Android(安卓)2.3 r1 中文API (78)—— ViewAnimator
  3. 动画效果编程基础--AnimationAndroid
  4. 淡入淡出动画
  5. Android(安卓)动画监听器
  6. 【特效】【自定义控件】关键字飘飞效果
  7. Android:自定义view实现动画
  8. AnimatedStateListDrawable介绍
  9. android tween动画

随机推荐

  1. Android(安卓)SDK
  2. Android(安卓)DNK安装笔记
  3. Android判断当前的android设备是否处于联
  4. EditText 失去焦点
  5. Android如何横屏, 全屏, 背景灯常量
  6. 基本的UI组件(TextView、EditText、Butto
  7. android 读取串口数据的服务,android串口
  8. Android(安卓)RelativeLayout 属性大全
  9. Android(安卓)EditText身份证等类型
  10. 【Android(安卓)系统开发】 Android(安卓