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 子类,实现抛物线、自由落体等物理效果。



http://disanji.net/2010/12/23/android-2-3-api-74-adapterview-adaptercontextmenuinfo/

更多相关文章

  1. 创建android逐帧动画的两种方式
  2. Android(安卓)Activity界面切换添加动画特效
  3. android感应器Senor
  4. android dialog 动画
  5. Android(安卓)属性动画(Property Animation) 完全解析 (下)
  6. Android(安卓)Activity界面切换添加动画特效
  7. Android模仿微信、云播雷达扫描动画效果
  8. android 4.0动画学习
  9. Android动画效果——X、Y轴抖动

随机推荐

  1. Android(安卓)电话查询(扩展成通讯录)
  2. Android上的Mosquitto推送
  3. 如何获得Android系统版本
  4. ThreadLocal原理解析(1):数据存取
  5. Android基础:去掉app界面的标题-Title
  6. AndroidStudio旧模板使用方法
  7. android 开发中遇到错误及解决办法总结
  8. Android(安卓)onMeasure(widthSpec, heig
  9. Android中的LruCache的原理和使用
  10. android 几种Project