![](https://img.haomeiwen.com/i3250381/8b3bc21b359fdd3e.png)
1. 插值器(Interpolator)
1.1 简介
定义:一个接口
作用:设置 属性值 从初始值过渡到结束值 的变化规律
如匀速、加速 & 减速 等等
即确定了 动画效果变化的模式,如匀速变化、加速变化 等等
1.2 应用场景
实现非线性运动的动画效果
非线性运动:动画改变的速率不是一成不变的,如加速 & 减速运动都属于非线性运动
1.3 具体使用
a. 设置方式
插值器在动画的使用有两种方式:在XML / Java代码中设置:
设置方法1:在 动画效果的XML代码中设置插值器属性android:interpolator
设置方法2:在 Java 代码中设置
b. 系统内置插值器类型
Android内置了 9 种内置的插值器实现:
系统内置的插值器如下:
作用 | 资源ID | 对应的Java类 |
---|---|---|
动画加速进行 | @android:anim/accelerate_interpolator | AccelerateInterpolator |
快速完成动画,超出再回到结束样式 | @android:anim/overshoot_interpolator | OvershootInterpolator |
先加速再减速 | @android:anim/accelerate_decelerate_interpolator | AccelerateDecelerateInterpolator |
先退后再加速前进 | @android:anim/anticipate_interpolator | AnticipateInterpolator |
先退后再加速前进,超出终点后再回终点 | @android:anim/anticipate_overshoot_interpolator | AnticipateOvershootInterpolator |
最后阶段弹球效果 | @android:anim/bounce_interpolator | BounceInterpolator |
周期运动 | @android:anim/cycle_interpolator | CycleInterpolator |
减速 | @android:anim/decelerate_interpolator | DecelerateInterpolator |
匀速 | @android:anim/linear_interpolator | LinearInterpolator |
系统默认的插值器是AccelerateDecelerateInterpolator,即先加速后减速
系统内置插值器的效果图:
自定义插值器
1.补间动画 实现 Interpolator接口;属性动画实现TimeInterpolator接口。2.TimeInterpolator接口是属性动画中新增的,用于兼容Interpolator接口,这使得所有过去的Interpolator实现类都可以直接在属性动画使用。
自定义插值器前,我们参考系统内置差值器:
匀速插值器:LinearInterpolator
先加速再减速 插值器:AccelerateDecelerateInterpolator
2. 估值器(TypeEvaluator)
2.1 简介
定义:一个接口
作用:设置 属性值 从初始值过渡到结束值 的变化具体数值
1.插值器(Interpolator)决定 值 的变化规律(匀速、加速、减速),即决定的是变化趋势;而接下来的具体变化数值则交给而估值器。
2.属性动画特有的属性。
2.2 应用场景
协助插值器 实现非线性运动的动画效果。
网友评论