前面我们讲到的属性动画都是使用代码的定义方式:Android属性动画之ValueAnimator和Android属性动画之ObjectAnimator和AnimatorSet,下面我们再来看看使用XML文件该怎么做。

(1) XML文件位置:res/animator/filename.xml
(2) 文件编译后的类型:ValueAnimator, ObjectAnimator, AnimatorSet。这三种类型前面已经介绍过。
(3) 引用资源的方式:

  • In Java: R.animator.filename
  • In XML: @[package:]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分别对应AnimatorSet、ObjectAnimator、ValueAnimator三个对象,这三个对象前面已经介绍过了:Android属性动画之ValueAnimator和Android属性动画之ObjectAnimator和AnimatorSet。

下面来分别介绍一下这几个元素。

1、<set>

它是一个集合,包含了其他的元素,包括, 和其他的元素,它代表的就是一个AnimatorSet对象。

它具有如下属性:

android:ordering
指定集合中动画播放的顺序。

它具有两种类型的值:sequentially和together。第一个表示顺序执行,第二个表示同时执行。默认是together。

2、<objectAnimator>
它指定一个对象的属性动画,表示一个ObjectAnimator对象。

它具有如下属性:
android:propertyName
属性名称,例如一个view对象的”alpha”和”backgroundColor”。

android:valueFrom
变化开始值

android:valueTo
变化结束值

android:valueType
变化值类型
它有两种值:intType和floatType,第二种为默认值

android:duration
持续时间

android:startOffset
动画开始延迟时间

android:repeatCount
重复次数,-1表示无限重复

android:repeatMode
重复模式,前提是android:repeatCount为-1
它有两种值:”reverse”和”repeat”,第一个表示反向重复,第二个为顺序重复。

3、<animator>

它对应的就是ValueAnimator对象。

它具有如下属性:

android:valueFrom

android:valueTo

android:duration

android:startOffset

android:repeatCount

android:repeatMode

android:valueType

这个跟上面一样,就不解释了,需要注意的是,在前面 Android属性动画之ValueAnimator中,我们就知道,使用这样方式需要自己去进行属性值的修改,它里面没有指定属性,我们使用animator.addUpdateListener去获取变化值,然后自己修改对应属性的值。

下面我们来看看一个例子:
XML文件如下,它的位置在res/animator/property_animator.xml。

<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>

使用XML来定义,那么如果希望让这个动画运行起来,首先肯定是需要解析这个XML文件,要把这个XML文件解析为一个AnimatorSet对象,然后为这个动画设置目标对象,最终启动动画。

下面是代码:

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

参考文章:http://developer.android.com/guide/topics/resources/animation-resource.html

更多相关文章

  1. inputType属性
  2. Android的线程使用来更新UI----Thread、Handler、Looper、TimerT
  3. android平台解析epub格式的书籍信息
  4. Android(安卓)编辑框(EditText)属性学习
  5. Android(安卓)EditText属性总结
  6. Android中Hook Instrumentation 的实现
  7. android:inputType 属性及其支持的取值
  8. Android的移动存储解决方案之SharedPreferences
  9. Android启动画面

随机推荐

  1. android电话拨号器源代码
  2. android RadioGroup的使用
  3. edittext 随文字换行 而高度增加
  4. Android的加速感应器开发一个控制铁球滚
  5. pytest-skip详解
  6. 2011.10.17——— android 多点触控
  7. Android(安卓)首选网络模式默认值的修改
  8. android 中如何限制 EditText 最大输入字
  9. android调用系统打电话功能
  10. Android之Fastboot、Recovery基础知识