美文网首页
Android API之Animator、AnimatorSet

Android API之Animator、AnimatorSet

作者: 二七头头 | 来源:发表于2015-12-15 02:24 被阅读2572次

    Animator

    概览

    这是一个为可以被启动、终结以及附带动画监听器的动画提供基本支持的类的父类。

    内部类
    • 接口Animator.AnimatorListener
      该监听器用于接收动画发出通知。
    • 接口Animator.AnimatorPauseListener
      该监听器用于接收当动画暂停或者恢复时发出的通知。
    构造方法
    Animator()
    

    AnimatorSet

    概览

    这个类用于将一个动画集合按特定的顺序播放。动画可以设置成同时播放、顺序播放或者在一定的延时后播放。

    有两种方式可以向AnimatorSet添加动画:

    • 调用playTogether()或者playSequentially()一次性地添加并播放动画。
    • 使用play(Animator)与Builder类中的方法,逐个添加并播放动画。

    另外,可以建立一个动画之间循环依赖的AnimatorSet.比如,有动画A1,A2和A3,A1在A2前启动,A2在A3前启动,A3则在A1千启动。

    内部类Builder

    该类是一个工具类,用于为AnimatorSet添加动画,同时为不同的动画间添加联系。该类的方法的目的是为了表达动画间的依赖关系时更加人性化。在满足需求的前提下,开发者也可以使用playTogether()和playSequentially()方法。但在一些情况下,使用Builder类更方便。

    Builder对象不能直接建立,而是通过paly(Animator)。

    比如,设置一个AnimatorSet将动画1和动画2同时播放,动画3在动画2结束后播放,动画4则在动画3结束后播放:

    AnimatorSet s = new AnimatorSet();
    s.play(anim1).with(anim2);        
    s.play(anim2).before(anim3);      
    s.play(anim4).after(anim3);
    
    AnimatorSet代码示例
    AnimatorSet set = new AnimatorSet();
    set.playSequentially(downAnim, stretchAnim, upAnim);
    set.start();
    s.play(anim4).after(anim3);
    

    ValueAnimator

    概览

    该类为播放动画提供了简单的时间引擎,该引擎可以计算动画时间并将其设置在目标对象上。

    所有的动画可以使用单个时间脉冲。存在处理器(handler)中的时间脉冲可以确保属性在UI线程中改变。

    默认情况下,ValueAnimator使用非线性时间的插值,该插值由类AccelerateDecelerateInterpolator实现,实现方法为setInterpolator(TimeInterpolator)。

    Animators可以通过代码或者资源文件建立。下面是一个ValueAnimator的资源文件示例:

    <animator xmlns:android="http://schemas.android.com/apk/res/android"
       android:duration="1000"                                             
       android:valueFrom="1"                                               
       android:valueTo="0"                                                 
       android:valueType="floatType"                                       
       android:repeatCount="1"                                             
       android:repeatMode="reverse"/>                                      
    

    ValueAnimator须配合监听器使用,并通过监听器的方法对目标对象进行更新。

    相关文章

      网友评论

          本文标题:Android API之Animator、AnimatorSet

          本文链接:https://www.haomeiwen.com/subject/jsyuhttx.html