返回顶部

Android从零开始学动画——插值器(Interpolator)

Android从零开始学动画——插值器(Interpolator)

在之前我们使用补间动画的时候,我们会发现有*android:interpolator*这么一个属性,这个属性其实就是可以指定插值器。怎么来理解插值器呢,这个有点像一个函数曲线的变化率。举个例子,就像我们跑步,固定距离1000米,固定跑步用时4分钟,我们可以先快跑,后面跑慢些。也可以先慢跑,后面冲刺。在使用差值器的时候,Android就把我们固定的动画效果,在设置的时间内变化不同的速率,来实现不同的不同效果。

简述

在Android需要用到Interpolator的子类来实例化插值器对象,比如:

Interpolator interpolator = new AccelerateDecelerateInterpolator();

使用方法

xml中使用

在xml定义动画文件的时候,可以指定android:interpolator属性来使用插值器

android:interpolator="@android:anim/accelerate_decelerate_interpolator"

java代码中使用

//定义插值器
Interpolator interpolator = new AccelerateDecelerateInterpolator();
Animation anmi = AnimationUtils.loadAnimation(InterpolatorActivity.this,R.anim.accelerate_decelerate_interpolator);
//设置插值器
anmi.setInterpolator(interpolator);

介绍各种插值器

AccelerateDecelerateInterpolator

在动画开始与介绍的地方速率改变比较慢,在中间的时候加速

图片描述

AccelerateInterpolator

在动画开始的地方速率改变比较慢,然后开始加速

图片描述

AnticipateInterpolator

开始的时候向后然后向前甩

图片描述

AnticipateOvershootInterpolator

开始的时候向后然后向前甩一定值后返回最后的值

图片描述

BounceInterpolator

动画结束的时候弹起

图片描述

CycleInterpolator

动画循环播放特定的次数,速率改变沿着正弦曲线

图片描述

DecelerateInterpolator

在动画开始的地方快然后慢

图片描述

LinearInterpolator

以常量速率改变

图片描述

OvershootInterpolator

向前甩一定值后再回到原来位置

图片描述

总结

Android中一般系统自带的差值器可以实现不同的效果了,当然也可以自定义我们自己需要的差值器,说白了就是实现一个不同的算法的函数。建议大家自己练习下以上插值器,体会下之间的区别。

本文标题: 《Android从零开始学动画——插值器(Interpolator)》

文章链接: https://unyiong.com/index/index/post/id/Kg8jwm%252FJRrY%253D.html

文章作者: 荔枝君

发布时间: 2016-06-05

最后更新: 2024-04-29

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

请荔枝君喝杯咖啡☕️:-)
打赏