1.LayoutAnimation的作用主要就是加载到一个layout上,让这个layout里面的所有控件都有相同的动画效果。现在用到的是在listview中添加动画,使得它每一个item都是滑落显示
首先看一下在代码中的实现方法,代码如下
import android.view.animation.Animation; import android.view.animation.AnimationSet; import android.view.animation.AnimationUtils; import android.view.animation.RotateAnimation; import android.view.animation.LayoutAnimationController; private Animation myHistoryAnimation; private LayoutAnimationController myLayoutControl; myHistoryAnimation = (Animation) AnimationUtils.loadAnimation( this, R.anim.history_clear_anim); myLayoutControl = new LayoutAnimationController(myHistoryAnimation); myLayoutControl.setDelay(0.4f); //myLayoutControl.setOrder(LayoutAnimationController.ORDER_NORMAL); myLayoutControl.setOrder(LayoutAnimationController.ORDER_REVERSE); mHistoryDisplayList.setLayoutAnimation(myLayoutControl);
2,其中history_clear_anim.xml内容如下
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator" android:shareInterpolator="true" > <alpha android:duration="1000" android:fromAlpha="1.0" android:toAlpha="0.0" /> <translate android:duration="1000" android:fromXDelta="0" android:fromYDelta="0" android:toXDelta="0" android:toYDelta="40%" /> </set>
3.从上面我们可以看出,这个LayoutAnimation的应用也是非常的简单。
就是获得一个item想要的动画效果:AnimationUtils.loadAnimation( this, R.anim.history_clear_anim);
然后以它作为参数,创建一个LayoutAnimation对象:new LayoutAnimationController
然后就是在需要的地方添加一次动画:注意,只有执行它添加语句以后接下来的动画起一次作用
4.如果我们想要在xml中实现的话,如下
我们只要以上面的history_clear_anim.xml为一个动画属性创建一个xml文件就行了
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:delay="0.5" android:animationOrder="normal" android:animation="@anim/history_clear_anim" />
然后在我们的listview控件下使用
<ListView> android:layoutAnimation="@animator/list_anim_layout" </ListView>
这里我们看一下
android:animationOrder="normal"
属性,它有三个值
1.normal:加载的时候,动画从第一个加载项开始
2.random:加载的时候,动画随机执行
3.reverse:加载的时候,动画从最后一个开始执行