Android animations.png
Android動(dòng)畫(huà)資源系列文章:Android動(dòng)畫(huà)資源文件總結(jié)
Tween animation
- 用XML定義的動(dòng)畫(huà)绎秒,在圖形上執(zhí)行諸如旋轉(zhuǎn)浦妄、透明度變化、移動(dòng)和拉伸等轉(zhuǎn)換见芹。
-
文件位置
res/anim/filename.xml
該文件名將作為資源ID剂娄。 -
資源引用方式
Java中: R.anim.filename
XML中: @[package:]anim/filename - 語(yǔ)法
<?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"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float" />
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float" />
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float" />
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float" />
<set>
...
</set>
</set>
補(bǔ)間動(dòng)畫(huà)資源文件的根標(biāo)簽只能是<alpha>, <scale>, <translate>, <rotate>或者 <set>中的一個(gè)。
<set>可以包括其他動(dòng)畫(huà)元素玄呛。
<set>內(nèi)也可以包含<set>元素阅懦。
-
元素
-
<set>
能夠包含<alpha>, <scale>, <translate>, <rotate>或者其他<set>的容器。 相當(dāng)于java代碼中的AnimationSet徘铝。
屬性-
android:interpolator
插值器耳胎, 該值必須是插值器的資源的引用。 可以使用平臺(tái)默認(rèn)插值器資源惕它,頁(yè)可以創(chuàng)建自己的插值器怕午。 -
android:shareInterpolator
Boolean類型。如果希望所有子元素都使用同一個(gè)插值器怠缸,則為“true”诗轻。
-
android:interpolator
-
<alpha>
淡入淡出動(dòng)畫(huà)。相當(dāng)于Java代碼中的AlphaAnimation.
屬性-
android:fromAlpha
float類型揭北。透明度的起始值扳炬,fromAlpha為0.0代表透明,fromAlpha為1.0代表不透明搔体。 -
android:toAlpha
float類型恨樟。透明度的終止值,fromAlpha為0.0代表透明疚俱,fromAlpha為1.0代表不透明劝术。
-
android:fromAlpha
-
<scale>
縮放動(dòng)畫(huà): pivotX和pivotY能夠指定縮放點(diǎn)。相當(dāng)于Java代碼中的ScaleAnimation呆奕。
屬性- android:fromXScale X方向開(kāi)始縮放時(shí)的值
- android:toXScaleX 方向結(jié)束縮放時(shí)的值
- android:fromYScale Y方向開(kāi)始縮放時(shí)的值
- android:toYScale Y方向結(jié)束縮放時(shí)的值
- android:pivotX X方向的縮放點(diǎn)
- android:pivotY Y方向的縮放點(diǎn)
-
<translate>
水平或豎直移動(dòng)動(dòng)畫(huà)养晋。
屬性值支持以下三種格式:- 值從-100%到100%,表示相對(duì)于自身的百分比梁钾;
- 值從-100%p到100%p绳泉,表示相對(duì)于parent的百分比;
- 一個(gè)沒(méi)有后綴的浮點(diǎn)值姆泻,表示一個(gè)絕對(duì)值零酪。相當(dāng)于Java代碼中的translateanimation冒嫡。
屬性 - android:fromXDelta Float or 百分比類型.X方向開(kāi)始時(shí)的偏移量。值為Float類型四苇,表示相對(duì)于正常位置的像素值孝凌,值為百分比類型且以%結(jié)尾,表示相對(duì)于控件寬度的百分比月腋;值為百分比類型且以%p結(jié)尾蟀架,表示相對(duì)于父控件的百分比
- android:toXDelta Floator 百分比類型 X方向結(jié)束時(shí)的偏移量。 值為Float類型罗售,表示相對(duì)于正常位置的像素值辜窑,值為百分比類型且以%結(jié)尾,表示相對(duì)于控件寬度的百分比寨躁;值為百分比類型且以%p結(jié)尾,表示相對(duì)于父控件的百分比
- android:fromYDelta Float or 百分比類型 Y方向開(kāi)始時(shí)的偏移量牙勘。值為Float類型职恳,表示相對(duì)于正常位置的像素值,值為百分比類型且以%結(jié)尾方面,表示相對(duì)于控件寬度的百分比放钦;值為百分比類型且以%p結(jié)尾,表示相對(duì)于父控件的百分比
- android:toYDelta Float or 百分比類型 Y方向結(jié)束時(shí)的偏移量恭金。值為Float類型操禀,表示相對(duì)于正常位置的像素值,值為百分比類型且以%結(jié)尾横腿,表示相對(duì)于控件寬度的百分比颓屑;值為百分比類型且以%p結(jié)尾,表示相對(duì)于父控件的百分比
-
<rotate>
旋轉(zhuǎn)動(dòng)畫(huà)耿焊。相當(dāng)于Java代碼中的RotateAnimation揪惦。
-
<set>
舉例
文件保存位置:res/anim/hyperspace_jump.xml:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
android: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" />
<set
android:interpolator="@android:anim/accelerate_interpolator"
android:startOffset="700">
<scale
android:fromXScale="1.4"
android:toXScale="0.0"
android:fromYScale="0.6"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
<rotate
android:fromDegrees="0"
android:toDegrees="-45"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
</set>
</set>
下面代碼將上面hyperspace_jump.xml動(dòng)畫(huà)應(yīng)用到ImageView上:
ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);