简单介绍一下4种动画效果方式
AnimationSet set = new AnimationSet(false); Animation animation = new AlphaAnimation(0,1); //AlphaAnimation 控制渐变透明的动画效果 animation.setDuration(500); //动画时间毫秒数 set.addAnimation(animation); //加入动画集合 animation = new TranslateAnimation(1, 13, 10, 50); //ScaleAnimation 控制尺寸伸缩的动画效果 animation.setDuration(300); set.addAnimation(animation); animation = new RotateAnimation(30,10); //TranslateAnimation 控制画面平移的动画效果 animation.setDuration(300); set.addAnimation(animation); animation = new ScaleAnimation(5,0,2,0); //RotateAnimation 控制画面角度变化的动画效果 animation.setDuration(300); set.addAnimation(animation); LayoutAnimationController controller = new LayoutAnimationController(set, 1); GridView gridView = (GridView) this.findViewById(R.id.gridview); gridView .setLayoutAnimation(controller); //GridView 设置动画效果 ListView listview= (ListView)this.findViewById(R.id.listview); listview.setLayoutAnimation(controller); //ListView 设置动画效果
nim文件夹下建立anim_layout.xml和alpha.xml
android:animationOrder 的取值有normal 0 默认reverse 1 倒序random 2 随机
anim_layout.xml
<?xml version="1.0" encoding="utf-8"?> <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:delay="0.5" android:animationOrder="random" android:animation="@anim/alpha" />
alpha.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="500" /> </set>
布局文件里的ListView增加一个layoutAnimation属性
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@id/android:list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:drawSelectorOnTop="false" android:layoutAnimation="@anim/anim_layout" ></ListView> <TextView android:id="@id/android:empty" android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="No data" /> </LinearLayout>