效果图
一、activity代码
package com.liudan.activity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.widget.Button;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class ListViewAnimation extends Activity {
private ListView listView;
private Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView)findViewById(R.id.listView);
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new ButtonListener());
}
private ListAdapter buildListAdapter(){
List<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
HashMap<String,String> mhashMap1 = new HashMap<String,String>();
mhashMap1.put("userName", "张三");
mhashMap1.put("userGender", "男");
HashMap<String,String> mhashMap2= new HashMap<String,String>();
mhashMap2.put("userName", "张三");
mhashMap2.put("userGender", "男");
HashMap<String,String> mhashMap3 = new HashMap<String,String>();
mhashMap3.put("userName", "张三");
mhashMap3.put("userGender", "男");
list.add(mhashMap1);
list.add(mhashMap2);
list.add(mhashMap3);
SimpleAdapter simpleAdapter = new SimpleAdapter(this,list
,R.layout.item,new String[] {"userName","userGender"},
new int[] {R.id.userName,R.id.userGender});
return simpleAdapter;
}
private class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
listView.setAdapter(buildListAdapter());
Animation animation = (Animation)AnimationUtils.loadAnimation(ListViewAnimation.this, R.anim.list_anim);
LayoutAnimationController lac = new LayoutAnimationController(animation);
lac.setOrder(LayoutAnimationController.ORDER_NORMAL); //设置动画执行顺序
lac.setDelay(0.5f); //设置动画与动画之间的间隔时间
listView.setLayoutAnimation(lac);
}
}
}
二、xml 代码, 在res下新建list_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">
<alpha
android:fromAlpha="0.0"
android:toAlpha="1.0"
android:duration="2000"
/>
</set>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/userName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
<TextView
android:id="@+id/userGender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ListView
android:id="@+id/listView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="测试动画输出listView"
/>
</LinearLayout>
<!--
把 android:layoutAnimation="@anim/list_anim_layout" 写在不同的位置实现你所需要动画的部分
-->