在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
时间: 2024-10-09 15:05:31