Android动画4-Interpolator常用模式

原创 2016年05月31日 13:16:54
插值器通过 对动画执行的每个时间点进行 提前/延迟 来达到对动画效果的 加速/减速,通过设置不同的 曲线 来得出负时间/大于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  线性插值器
            构造方法: 无参构造
            计算时间的方法:
            
            这就是 正常速度。

Android:关于Animation的几种常见的动画

适当的添加一些动画效果,能够获得更好的用户体验,这次讲讲一些常见的动画~ 如:透明动画,渐变动画等等。...
  • vrinux
  • vrinux
  • 2015年04月11日 12:44
  • 947

Android中常用的设计模式<一>

对于开发来说,设计模式是必不可少的,就像是一个项目的架海紫金梁,而且熟悉常用的设计模式可以有助于我们研读源码。好,废话不多说,开始介绍, 1,单例: 不想再说了,如果还有人不会,我叫他大爷。 算了还是...
  • u010568407
  • u010568407
  • 2016年07月14日 18:51
  • 5991

Android四种常见设计模式说明

前言:        Android开发的设计模式,基本设计思想源于java的设计模式,java的设计模式有N多种,据不完全统计,迄今为止,网络出现最频繁的大概有23种。Java只是一门开发语言,学...
  • xiyangyang8
  • xiyangyang8
  • 2016年04月04日 01:39
  • 2006

Android中的享元模式

大家对Java中的String对象的特性应该比较熟悉:String类型的对象一旦创建之后就不可修改,当两个String对象所包含的内容相同时,JVM对象只创建一个String对象对应两个不同的引用。p...
  • hp910315
  • hp910315
  • 2016年03月05日 19:53
  • 1168

Android常用8种设计模式(一)

一下内容整理自51CTO.com专题  尊重原创,知识分享! 对于开发者来说设计模式在Android起到的作用是不容小视的,最基本的模式有八种:单例、工厂、观察者、代理、命令、适配器、合成、访问者。 ...
  • qq_27489007
  • qq_27489007
  • 2016年12月01日 20:06
  • 1107

android日夜间模式切换动画

转载请说明出处 在一些应用中需要有日夜间模式,当切换模式之后,如果不给点过渡动画,那效果看起来比较差。 那用什么方式来做这个切换过渡动画呢? 第一种:选择用一个activity来做过渡 首先我们建...
  • asd2603934
  • asd2603934
  • 2016年01月19日 12:56
  • 1326

Android---MVP设计模式高级(三)

撒发生
  • u013210620
  • u013210620
  • 2015年11月30日 18:16
  • 1066

Android四大组件——Activity跳转动画、淡出淡入、滑出滑入、自定义退出进入

前言: 系统中有两个定义好的Activity跳转动画:fade_in、fade_out、slide_in_left、slide_out_right 其中运用到了插值器的知识点,这里也会简单...
  • a249130
  • a249130
  • 2017年01月14日 20:19
  • 304

几种常用的设计模式介绍

几种常用的设计模式介绍 1.    设计模式的起源 最早提出“设计模式”概念的是建筑设计大师亚力山大Alexander。在1970年他的《建筑的永恒之道》里描述了投计模式的发现,因为它已经存在...
  • XSL1990
  • XSL1990
  • 2013年11月16日 18:17
  • 131919

Android51--电源管理之省电模式分析

来源:互联网     时间:2015-9-22 6:56:56 本篇文章主要介绍了"Android51--电源管理之省电模式分析",主要涉及到方面的内容,对于Android开...
  • CCJHDOPC
  • CCJHDOPC
  • 2016年02月16日 14:54
  • 607
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android动画4-Interpolator常用模式
举报原因:
原因补充:

(最多只允许输入30个字)