Android动画资源系列文章:Android动画资源文件总结
Tween animation
- 用XML定义的动画,在图形上执行诸如旋转、透明度变化、移动和拉伸等转换。
- 文件位置
res/anim/filename.xml
该文件名将作为资源ID。 - 资源引用方式
Java中: R.anim.filename
XML中: @[package:]anim/filename - 语法12345678910111213141516171819202122232425262728<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"android:interpolator="@[package:]anim/interpolator_resource"android:shareInterpolator=["true" | "false"] ><alphaandroid:fromAlpha="float"android:toAlpha="float" /><scaleandroid:fromXScale="float"android:toXScale="float"android:fromYScale="float"android:toYScale="float"android:pivotX="float"android:pivotY="float" /><translateandroid:fromXDelta="float"android:toXDelta="float"android:fromYDelta="float"android:toYDelta="float" /><rotateandroid:fromDegrees="float"android:toDegrees="float"android:pivotX="float"android:pivotY="float" /><set>...</set></set>
补间动画资源文件的根标签只能是<alpha>
, <scale>
, <translate>
, <rotate>
或者 <set>
中的一个。<set>
可以包括其他动画元素。<set>
内也可以包含<set>
元素。
元素
<set>
能够包含<alpha>
,<scale>
,<translate>
,<rotate>
或者其他<set>
的容器。 相当于java代码中的AnimationSet
。
属性- android:interpolator
插值器, 该值必须是插值器的资源的引用。 可以使用平台默认插值器资源,页可以创建自己的插值器。 - android:shareInterpolator
Boolean类型。如果希望所有子元素都使用同一个插值器,则为“true”。
- android:interpolator
<alpha>
淡入淡出动画。相当于Java代码中的AlphaAnimation.
属性- android:fromAlpha
float类型。透明度的起始值,fromAlpha为0.0代表透明,fromAlpha为1.0代表不透明。 - android:toAlpha
float类型。透明度的终止值,fromAlpha为0.0代表透明,fromAlpha为1.0代表不透明。
- android:fromAlpha
<scale>
缩放动画: pivotX和pivotY能够指定缩放点。相当于Java代码中的ScaleAnimation。
属性- android:fromXScale X方向开始缩放时的值
- android:toXScaleX 方向结束缩放时的值
- android:fromYScale Y方向开始缩放时的值
- android:toYScale Y方向结束缩放时的值
- android:pivotX X方向的缩放点
- android:pivotY Y方向的缩放点
<translate>
水平或竖直移动动画。
属性值支持以下三种格式:- 值从-100%到100%,表示相对于自身的百分比;
- 值从-100%p到100%p,表示相对于parent的百分比;
- 一个没有后缀的浮点值,表示一个绝对值。相当于Java代码中的translateanimation。
属性 - android:fromXDelta Float or 百分比类型.X方向开始时的偏移量。值为Float类型,表示相对于正常位置的像素值,值为百分比类型且以%结尾,表示相对于控件宽度的百分比;值为百分比类型且以%p结尾,表示相对于父控件的百分比
- android:toXDelta Floator 百分比类型 X方向结束时的偏移量。 值为Float类型,表示相对于正常位置的像素值,值为百分比类型且以%结尾,表示相对于控件宽度的百分比;值为百分比类型且以%p结尾,表示相对于父控件的百分比
- android:fromYDelta Float or 百分比类型 Y方向开始时的偏移量。值为Float类型,表示相对于正常位置的像素值,值为百分比类型且以%结尾,表示相对于控件宽度的百分比;值为百分比类型且以%p结尾,表示相对于父控件的百分比
- android:toYDelta Float or 百分比类型 Y方向结束时的偏移量。值为Float类型,表示相对于正常位置的像素值,值为百分比类型且以%结尾,表示相对于控件宽度的百分比;值为百分比类型且以%p结尾,表示相对于父控件的百分比
- 值从-100%到100%,表示相对于自身的百分比;
旋转动画。相当于Java代码中的RotateAnimation。
举例
文件保存位置:res/anim/hyperspace_jump.xml:1234567891011121314151617181920212223242526272829303132<set xmlns:android="http://schemas.android.com/apk/res/android"android:shareInterpolator="false"><scaleandroid:interpolator="@android:anim/accelerate_decelerate_interpolator"android:fromXScale="1.0"android:toXScale="1.4"android:fromYScale="1.0"android:toYScale="0.6"android:pivotX="50%"android:pivotY="50%"android:fillAfter="false"android:duration="700" /><setandroid:interpolator="@android:anim/accelerate_interpolator"android:startOffset="700"><scaleandroid:fromXScale="1.4"android:toXScale="0.0"android:fromYScale="0.6"android:toYScale="0.0"android:pivotX="50%"android:pivotY="50%"android:duration="400" /><rotateandroid:fromDegrees="0"android:toDegrees="-45"android:toYScale="0.0"android:pivotX="50%"android:pivotY="50%"android:duration="400" /></set></set>
下面代码将上面hyperspace_jump.xml动画应用到ImageView上:123ImageView image = (ImageView) findViewById(R.id.image);Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);image.startAnimation(hyperspaceJump);