A013-animator资源

本文详细介绍了Android中的属性动画资源使用方法,对比了ViewAnimation与PropertyAnimation的不同之处,包括作用对象、属性变化方式及扩展性等。并通过实例展示了如何通过XML定义动画序列及如何在Java代码中调用。
摘要由CSDN通过智能技术生成

上一节课介绍了关于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当中

valuedescription
sequentially在这组动画动画中顺序播放
together(默认)在这组动画中一起播放

<objectAnimator>

android:propertyName
属性名

valuedescription
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
如果是值是颜色,就不需要指定这个属性

valuedescription
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使用需要大家多看一下官方的文档。


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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小巫技术博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值