A013-animator资源

上一节课介绍了关于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使用需要大家多看一下官方的文档。

原文发布于微信公众号 - 小巫技术博客(wwjblog)

原文发表时间:2015-09-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏前端新视界

网页中添加下划线的方法汇总及优缺点

本文主要介绍了添加下划线样式的几乎所有方法,并且比较了每一种方法的优缺点。没想到之前一直没有注意的下划线还有这么多玄机奥秘! 本文由 nzbin 翻译,艾凌风...

232100
来自专栏Web项目聚集地

50道CSS面试题(附答案)

标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin 低版本IE盒子模型:宽度=内容宽度(content+bo...

16430
来自专栏HenCoder

HenCoder Android 开发进阶:自定义 View 1-3 文字的绘制

之前的内容在这里: HenCoder Android 开发进阶 自定义 View 1-1 绘制基础 HenCoder Android 开发进阶 自定义 View...

22420
来自专栏非典型技术宅

iOS动画系列之九:实现点赞的动画及播放起伏指示器(OC+Swift)1. CAReplicatorLayer2. CAEmitterLayer3. CAGradientLayer

17420
来自专栏落花落雨不落叶

【被玩坏的博客园】之canvas装饰博客园侧边栏

16520
来自专栏前端小叙

动态添加的html元素绑定事件的方法

在js中写好方法名对应的方法就可以了,如果绑定方法的元素太多,可以考虑使用方法二;

13540
来自专栏极客慕白的成长之路

50道CSS基础面试题

17350
来自专栏黒之染开发日记

css3动画在手机端的流畅度比较

我发现即使都是用css3的transition做动画,有的属性在动画播放时却会不流畅,出现定格动画的效果,这里做个比较,方便我以后做动画。

41720
来自专栏练小习的专栏

封装图片滑动效果

by bopooo 在腾讯QQ软件下载的页面有一个图片滑动的效果,觉得还不错 就自己封装了一个 技术方面在 动作缓冲上 遇到一些问题 不过都解决了 不过还...

266100
来自专栏前端说吧

小程序 - 效果处理之技巧合集(更新中...)

52190

扫码关注云+社区

领取腾讯云代金券