A013-animator资源

作者: IT_xiao小巫 | 来源:发表于2015-09-19 17:53 被阅读52次

    上一节课介绍了关于anim资源的知识点,这节课来给大家介绍animator资源,它跟anim资源同样是res下在资源,它是另外一种动画资源,上节课讲的是View Animation,是Android3.0之前使用较多的动画方式,然而Android 3.0推出之后,也带给我们一种新的动画实现方式——Property Animation(属性动画),它们有什么不一样的地方?

    不同点:

    • View Animation技术较老,只能作用于View
    • Property Animation技术相对较新,可以作用于任何对象,并且能真正改变对象的属性
    • 前者不具备良好的扩展性,后者具备较好的扩展性

    如何使用?

    文件路径:res/animator/filename.xml
    资源指向ValueAnimatorObjectAnimator或者AnimatorSet
    资源引用:

    • 在Java中:R.animator.filename
    • 在XML中:@animator/filename

    语法

    
    <set
      android:ordering=["together" | "sequentially"]>
    
        <objectAnimator
            android:propertyName="string"
            android:duration="int"
            android:valueFrom="float | int | color"
            android:valueTo="float | int | color"
            android:startOffset="int"
            android:repeatCount="int"
            android:repeatMode=["repeat" | "reverse"]
            android:valueType=["intType" | "floatType"]/>
    
        <animator
            android:duration="int"
            android:valueFrom="float | int | color"
            android:valueTo="float | int | color"
            android:startOffset="int"
            android:repeatCount="int"
            android:repeatMode=["repeat" | "reverse"]
            android:valueType=["intType" | "floatType"]/>
    
        <set>
            ...
        </set>
    </set>
    

    文件必须包含上面其中一种根标签<set> <objectAnimator> <animator>,其中<set>可以包含其他两个标签。

    元素解析

    <set>

    android:ordering
    指定动画的播放顺序在set当中

    | value | description |
    | : -- : | : -- : |
    | sequentially| 在这组动画动画中顺序播放|
    |together(默认)| 在这组动画中一起播放|

    <objectAnimator>

    android:propertyName
    属性名

    | value | description |
    | : -- : | : -- : |
    |alpha|透明度 |
    |scaleX|在X轴方向上缩放|
    |scaleY|在Y轴方向上缩放|
    |rotation|旋转|
    |translationX|在X轴方向上偏移|
    |translationY|在Y轴方向上偏移|
    注:属性动画不仅仅局限于移动、缩放、旋转和淡入淡出视觉上的改变,上面只是视觉上的一些属性,它可以是任何对象的任意属性。

    android:valueTo
    动画开始时的属性值

    android:valueFrom
    动画结束时的属性值

    android:duration
    动画的持续时间

    android:startOffset
    动画的延迟播放时间

    android:repeatCount
    动画重复播放次数 取值为-1表示无限循环,1表示循环一次

    android:repeatMode
    "repeat"表示重复播放,"reverse"表示动画逆转播放

    android:valueType
    如果是值是颜色,就不需要指定这个属性

    | value | description |
    | : -- : | : -- : |
    |intType|指定动画属性值为integers|
    |floatType(默认)|指定动画属性值为floats|

    举例

    <set android:ordering="sequentially">
        <set>
            <objectAnimator
                android:propertyName="x"
                android:duration="500"
                android:valueTo="400"
                android:valueType="intType"/>
            <objectAnimator
                android:propertyName="y"
                android:duration="500"
                android:valueTo="300"
                android:valueType="intType"/>
        </set>
        <objectAnimator
            android:propertyName="alpha"
            android:duration="500"
            android:valueTo="1f"/>
    </set>
    

    如果想运行这个动画,你必须在你的代码中inflate这个xml资源变成一个AnimationSet对象,然后在播放这个动画之前设置所有动画的目标对象。Java代码如下:

    AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
        R.anim.property_animator);
    set.setTarget(myObject);
    set.start();
    

    总结

    本节课介绍了Android中的属性动画资源的使用,关于属性动画还有很多内容,会在之后讲到属性动画的时候再继续讨论,学完本节课相信大家对animator资源有了一定的认识,资源的时候方式都是类似,更多的API使用需要大家多看一下官方的文档。


    本博客的所有的内容会同步到我的微信公众号,欢迎大家扫码关注


    wwjblogwwjblog

    相关文章

      网友评论

        本文标题:A013-animator资源

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