本章内容 https://blog.youkuaiyun.com/cjh_android/article/details/51508634
花了点时间,把所有动画的插值器都用了一遍,写了个Demo分享下,看效果之前先看下Android动画中插值器的类型:
AccelerateDecelerateInterpolator
@android:anim/accelerate_decelerate_interpolator
在动画开始与介绍的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator
@android:anim/accelerate_interpolator
在动画开始的地方速率改变比较慢,然后开始加速
AnticipateInterpolator
@android:anim/anticipate_interpolator
开始的时候向后然后向前甩
AnticipateOvershootInterpolator
@android:anim/anticipate_overshoot_interpolator
开始的时候向后然后向前甩一定值后返回最后的值
BounceInterpolator
@android:anim/bounce_interpolator
动画结束的时候弹起
CycleInterpolator
@android:anim/cycle_interpolator
动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator
@android:anim/decelerate_interpolator
在动画开始的地方快然后慢
LinearInterpolator
@android:anim/linear_interpolator
以常量速率改变
OvershootInterpolator
@android:anim/overshoot_interpolator
向前甩一定值后再回到原来位置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
设置插值器的代码很简单 alphaAnimation.setInterpolator(baseInterpolator);
XML中的用法
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
接下来就仔细的看看效果吧:
AccelerateDecelerateInterpolator
在动画开始与介绍的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator
在动画开始的地方速率改变比较慢,然后开始加速
AnticipateInterpolator
开始的时候向后然后向前甩
AnticipateOvershootInterpolator
开始的时候向后然后向前甩一定值后返回最后的值
BounceInterpolator
动画结束的时候弹起
CycleInterpolator
动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator
在动画开始的地方快然后慢
LinearInterpolator
以常量速率改变
OvershootInterpolator
向前甩一定值后再回到原来位置
最后 CycleInterpolator 这个插值器需要注意下,它的构造函数需要传入一个float值,这个值就是动画重复的次数,并且如过对这个差值器 设置 android:fillAfter=”true” 那么动画结束后,你看到的回事动画开始的第一幕(第一帧),如果不设置或者设置成 android:fillBefore=”true”,那么看到的回事控件本身的XML的状态
就这些了,源码下载:
http://download.youkuaiyun.com/detail/cjh_android/9532238
---------------------
作者:jia-huan
来源:优快云
原文:https://blog.youkuaiyun.com/cjh_android/article/details/51508634
版权声明:本文为博主原创文章,转载请附上博文链接!