Android动画4-Interpolator常用模式
来源:互联网 发布:手机淘宝中评可以改吗 编辑:程序博客网 时间:2024/06/06 04:46
插值器通过 对动画执行的每个时间点进行 提前/延迟 来达到对动画效果的 加速/减速,通过设置不同的 曲线 来得出负时间/大于1的时间值,使控件按设定的动画轨迹 反方向/正方向 超出改变一点轨迹。
这里只介绍 官方提供的9中插值器,即已有的Interpolator的9个子类。当使用插值器的时候只要创建这几个类的对象,然后调用anim.setInterpolator方法就已经把该插值器添加到动画里了。
9个子类: AccelerateDecelerateInterpolator 加速减速插值器-开始与结束时速度慢,中间速度快
AccelerateInterpolator 加速插值器-开始速度慢,然后一直变快
DecelerateInterpolator 减速插值器-开始速度快,然后一直变慢
AnticipateInterpolator 向前插值器-先向反方向运动一定距离,然后正方向运动到终点
AnticipateOvershootInterpolator 向前向后插值器-先反方向运动一定距离,然后正方向运动到超出一定距离,然后返回终点
OvershootInterpolator 向后插值器-到轨迹终点之后再正方向运动一定距离,然后返回终点
BounceInterpolator 反弹插值器-类似于一物体从高度掉到地上,会弹起来几下
CycleInterpolator 循环插值器-类型于正弦曲线那样来回运动
LinearInterpolator 线性插值器-正常速度,默认就是
详细说明: (注:所有插值器是对时间进行处理,动画的移动轨迹是没有变化的)
上面已经说了插值器其实是通过对 绘制时间 进行修改(提前/延迟)来达到速度变化的效果(其实是错觉,速度没有变化,只是时间变了),在各个插值器类里面都会有一个方法,输入正常时间输出计算过后的时间。
例如:加速插值器
,这个方法会对输入的时间进行处理,这个方法结果是input的平方(当创建该插值器时传入的参数是1的时候,走if为true),即本来总时间的0.1位置该绘制的图像变成了0.01时要绘制的图像,0.9位置应绘制的图像变成了0.81位置绘制的图像,以此类推。这样就会看到速度“越来越快”。
故以下曲线Y轴代表输出时间,X轴代表输入时间, 只需要关注 X轴 [0,1] 的这一段,曲线图转自http://blog.csdn.net/wzg_1987/article/details/8989686
1. AccelerateDecelerateInterpolator 先加速后减速
类似 正弦曲线 -π/2 到 π/2 段。
构造方法:无参构造,计算时间的方法:
2. AccelerateInterpolator 一直加速
类似 正弦曲线 -π/2 到 π/2 段。
构造方法:
传入一个float类型值,,由这两个方法可看出,传入的值越大,初始斜率就越小,即初始速度越小。
3. DecelerateInterpolator 一直减速
类似 正弦曲线 0 到 π/2 段。
构造方法: 和加速插值器刚好相反
传入的值越大,初始速度越快。 还有个无参构造,无参构造代表mFactor=1f
4. AnticipateInterpolator 向前插补器
这是一个3次的曲线,[0,1]中有一些点Y轴为负值,即代表先反方向运动
构造方法:1.无参构造,代表 mTension=2f; 2.一个float类型的参数
,传入的值越大,刚开始反方向的距离越长,但是注意这里反方向运动距离是计算出来的,不是由传入值 直接指定的。
5. AnticipateOvershootInterpolator 向前向后插值器
[0, 0.5]向前插补,[0.5, 1]向后插补
构造方法:
计算时间的方法:
反方向运动和正方向运动的距离是相同的。传入的值越大,反方向/正方向移动的距离越长。
6. OvershootInterpolator 向后插值器
[0,1]有一部分Y轴值超出1,这部分就是正向超出部分
构造方法:
计算时间的方法:
传入的值越大,超出距离越长。
7. BounceInterpolator 反弹插值器
构造方法:无参构造
计算时间的方法:
8. CycleInterpolator 循环插值器
构造方法:
计算时间的方法:
由源码可看出,此曲线就是正弦曲线,很明显传入的值控制着整个曲线的X轴长度,传入5代表曲线最大长度是10π。
9. LinearInterpolator 线性插值器
构造方法: 无参构造
计算时间的方法:
这就是 正常速度。
0 0
- Android动画4-Interpolator常用模式
- android动画之Interpolator
- android动画控制 Interpolator
- Android 动画 Interpolator插值器
- android动画interpolator插补器
- android Interpolator动画插值器
- android 动画interpolator简介
- android动画:interpolator效果
- Android动画进阶(Interpolator)
- Android 动画中的Interpolator
- 动画 Android:interpolator用法
- Android 动画之interpolator
- Android动画----TypeEvaluater,Interpolator
- Android 属性动画 常用方法 与 插值器 Interpolator
- Android动画之Interpolator插补器
- android动画(一)Interpolator
- android动画(一)Interpolator
- Android动画之Interpolator插补器
- 触发checkbox的click事件时遇到的问题
- 91---Criteria的内链接,分页,查询唯一对象,条件查询,分组统计,投影查询,DetachedCriteria
- hibernate jdbc
- iOS关闭手势返回功能
- 恐怖谷理论的陷阱
- Android动画4-Interpolator常用模式
- IOCP模型与网络编程
- C++ Unicode与UTF_8 编码转换
- 数据库入门
- 自我介绍
- runtime
- 大数据面试宝典
- 实用知识:UIButton 图片在上文字在下
- 异常处理