標籤:animation 動畫 android動畫 xml
在res下建立一個檔案夾,命名為anim,建立xml檔案,例如建立了一個a1.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
//在這裡寫動畫
</set>
alpha:漸層透明度效果
rotate:旋轉動畫效果
scale:伸縮動畫效果
translate:平移動畫效果
下面使用xml建立動畫-部分動畫,詳情見源碼:
alpha:漸層透明度效果-從有到無
a1.xml
<set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha android:duration="3000" android:fromAlpha="1.0" android:toAlpha="0.0" /></set>
rotate:旋轉動畫效果-順時針
rotate.xml
<rotate android:duration="3000" android:fromDegrees="0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toDegrees="+350" />
scale:伸縮動畫效果-向右下角縮放
scale.xml
<scale android:duration="700" android:fillAfter="false" android:fromXScale="1.0" android:fromYScale="1.0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="100%" android:pivotY="100%" android:toXScale="0" android:toYScale="0" />
translate:平移動畫效果-從上到下
translate.xml
<translate android:duration="2000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="0" android:toYDelta="300" />
如果是動畫集合,就在set節點下,按照順序載入。下面旋轉和平移的集合
<set xmlns:android="http://schemas.android.com/apk/res/android" > <rotate android:duration="3000" android:fromDegrees="0" android:interpolator="@android:anim/accelerate_decelerate_interpolator" android:pivotX="50%" android:pivotY="50%" android:toDegrees="+350" /> <translate android:duration="2000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="0" android:toYDelta="300" /></set>
寫一個工具類載入這個動畫
AnimaXmlUtils.java
/** * 使用XMl設計的動畫 * */public class AnimaXmlUtils {private static Animation anim;/** * 漸層透明動畫,透明度:1.0~0.0 * * @return */public static Animation alphaFrom1To0(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.a1);return anim;}/** * 漸層透明動畫,透明度:1.0~0.0 * * @return */public static Animation alphaFrom0To1(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.a2);return anim;}/** * 旋轉動畫,順時針360 * * @return */public static Animation rotateTiclockwise(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.rotate);return anim;}/** * 旋轉動畫,逆時針360 * * @return */public static Animation rotateAnticlockwise(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.rotate1);return anim;}/** * 伸縮動畫,從有到無 * * @return */public static Animation scaleFrom1to0(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.scale);return anim;}/** * 伸縮動畫,從有到無 * * @return */public static Animation scaleFrom0to1(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.scale1);return anim;}/** * 平移動畫,從上到下 * * @return */public static Animation translateTopToBottom(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.translate);return anim;}/** * 平移動畫,從下到上 * * @return */public static Animation translateBottomToTop(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.translate1);return anim;}/** * 四個動畫集合 * * @return */public static Animation animationRoaAndTranSet(Context context) {anim = AnimationUtils.loadAnimation(context, R.anim.aniset);return anim;}}
:
源碼下載:http://download.csdn.net/detail/forwardyzk/8314155
android構建基本XMl動畫