表9.10 定义缩放动画时常用的属性
属 性 描 述
android:interpolator 用于控制动画的变化速度,使得动画效果可以匀速、加速、减速或抛物线速度等各种速度变化,其属性值见表9.8
android:fromXScale 用于指定动画开始时水平方向上的缩放系数,值为1.0表示不变化
android:toXScale 用于指定动画结束时水平方向上的缩放系数,值为1.0表示不变化
android:fromYScale 用于指定动画开始时垂直方向上的缩放系数,值为1.0表示不变化
android:toYScale 用于指定动画结束时垂直方向上的缩放系数,值为1.0表示不变化
android:pivotX 用于指定轴心点的X坐标
android:pivotY 用于指定轴心点的Y坐标
android:repeatMode 用于设置动画的重复方式,可选值为reverse(反向)或restart(重新开始)
android:repeatCount 用于设置动画的重复次数,属性值以是代表次数的数值,也可以是infinite(无限循环)
android:duration 用于指定动画持续的时间,单位为毫秒
例如,定义一个以图片的中心为轴心点,将图片放大2倍的、持续时间为2秒钟的动画,可以使用下面的代码:
android:fromYScale="1"
android:toXScale="2.0"
android:toYScale="2.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"/>
4. 平移动画(Translate Animation)
平移动画就是通过为动画指定开始时的位置、结束时的位置以及持续时间来创建动画。同透明度渐变动画一样,也可以在XML文件中定义平移动画资源文件,基本的语法格式如下:
android:interpolator="@[package:]anim/interpolator_resource">
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float"
android:repeatMode="reverse|restart"
android:repeatCount="次数|infinite"
android:duration="Integer"/>
在上面的语法中,各属性说明如表9.11所示。
表9.11 定义平移动画时常用的属性
属 性 描 述
android:interpolator 用于控制动画的变化速度,使得动画效果可以匀速、加速、减速或抛物线速度等各种速度变化,其属性值见表9.8
android:fromXDelta 用于指定动画开始时水平方向上的起始位置
android:toXDelta 用于指定动画结束时水平方向上的起始位置
android:fromYDelta 用于指定动画开始时垂直方向上的起始位置
android:toYDelta 用于指定动画结束时垂直方向上的起始位置
android:repeatMode 用于设置动画的重复方式,可选值为reverse(反向)或restart(重新开始)
android:repeatCount 用于设置动画的重复次数,属性可以是代表次数的数值,也可以是infinite(无限循环)
android:duration 用于指定动画持续的时间,单位为毫秒
例如,定义一个让图片从(0,0)点到(300,300)点、持续时间为2秒钟的动画,可以使用下面的代码:
android:fromXDelta="0"
android:toXDelta="300"
android:fromYDelta="0"
android:toYDelta="300"
android:duration="2000">
9.4.3 范例1:忐忑的精灵
例9.16 在Eclipse中创建Android项目,名称为9.16,使用逐帧动画实现一个忐忑的精灵动画。(实例位置:光盘\TM\sl\9\9.16)
(1)在新建项目的res目录中,首先创建一个名称为anim的目录,并在该目录中添加一个名称为fairy.xml的XML资源文件,然后在该文件中定义组成动画的图片资源,具体代码如下:
(2)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的TextView组件删除,然后为默认添加的线性布局管理器设置android:id和android:background属性。将android:background属性为步骤(1)中创建的动画资源,修改后的代码如下:
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@anim/fairy"