首页 > 代码库 > android构建基本XMl动画

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