Android:interpolator 属性介绍

zoomin.xml代码:


1.<?xmlversion="1.0"encoding="utf-8"?>
2.<set
3.xmlns:Android="http://schemas.android.com/apk/res/android"
4.Android:interpolator="@android:anim/decelerate_interpolator">
<scaleAndroid:fromXScale="2.0"android:toXScale="1.0"
5.Android:fromYScale="2.0"android:toYScale="1.0"
6.Android:pivotX="50%p"android:pivotY="50%p"
7.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.
public float getInterpolation(float input) {
return input;
}
Interpolator其他的几个子类,也都是按照特定的算法,实现了对变化率。还可以定义自己的 Interpolator 子类,实现抛物线、自由落体等物理效果。

更多相关文章

  1. android空间动画
  2. android添加动画效果
  3. Android用户界面UI组件--AdapterView及其子类(四) GridView
  4. Android抖动的动画效果
  5. Android animation Interpolator属性 设置动画速度介绍?
  6. android仿漫画源码、抽奖转盘、Google相册、动画源码等
  7. 自定义android开机动画
  8. 自定义动画(animation)时set中的各元素效果
  9. android源码下载-等待提示动画

随机推荐

  1. Android安装APK时出现Local path doesn't
  2. Android中http交互是用HttpUrlConnection
  3. android activity 相互传值
  4. android 控件 3d 旋转效果
  5. Android 创建桌面快捷键
  6. android 按钮的文字显示不全
  7. Android Studio支持Java8方法
  8. 在eclipse中查看Android各版本源代码
  9. Android中使用FFMPEG将yuv420p编码为h264
  10. android 打开摄像头的代码