android构建基本XMl动画

来源:互联网 发布:青岛资海网络 编辑:程序博客网 时间:2024/04/29 22:50

在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

0 0
原创粉丝点击