![](https://img.haomeiwen.com/i13519092/3de1c581572100db.jpg)
一. 插值器(Interpolator)
1. 作用
作用:设置 属性值 从初始值过渡到结束值 的变化规律
- 如匀速、加速 & 减速 等等
- 即确定了 动画效果变化的模式,如匀速变化、加速变化 等等。
2. 应用场景
实现非线性运动的动画效果
非线性运动:动画改变的速率不是一成不变的,如加速 & 减速运动都属于非线性运动
3. 使用方式
- xml引用 android:shareInterpolator = ""
- java代码中引用 anim.setInterpolator();
4. 系统内置9种插值器
效果参考 https://blog.csdn.net/swt369/article/details/77620263
使用Android内置的插值器能满足大多数的动画需求
如果上述9个插值器无法满足需求,还可以自定义插值器
5. 自定义插值器
1. 补间动画
public class MyInterpolator implements Interpolator {
@Override
public float getInterpolation(float input) {
// 参数说明
// input值值变化范围是0-1,且随着动画进度(0% - 100% )均匀变化
// 即动画开始时,input值 = 0;动画结束时input = 1
// 而中间的值则是随着动画的进度(0% - 100%)在0到1之间均匀增加
float result = 0;
result = input*input; //加速度增加
// result = input; //匀速
return result;
}
}
2. 属性动画
public class MyTimeInterpolator implements TimeInterpolator {
@Override
public float getInterpolation(float input) {
float result = 0;
result = input*input; //加速度增加
// result = input; //匀速
return result;
}
}
二. 估值器(TypeEvaluator)
1. 作用
设置 属性值 从初始值过渡到结束值 的变化具体数值
- 插值器(Interpolator)决定 值 的变化规律(匀速、加速blabla),即决定的是变化趋势;而接下来的具体变化数值则交给估值器
- 估值器属性动画特有的属性
2. 应用场景
协助插值器 实现非线性运动的动画效果
非线性运动:动画改变的速率不是一成不变的,如加速 & 减速运动都属于非线性运动
3. 使用方式
1. 构造方法传入
ObjectAnimator anim = ObjectAnimator.ofObject(textView, "height", new IntEvaluator(), 1, 3);
2. setEvaluator()
ValueAnimator的方法,它的子类都可以调用
4. 系统内置3种估值器
(1). IntEvaluator:针对整型属性
(2). FloatEvaluator:针对浮点型属性
(3). ArgbEvaluator:针对Color属性
网友评论