新建一个Android project ,使MainActivity 继承自 ListActivity;
public class MainActivity extends ListActivity { private ArrayAdapter<String> aa; private LayoutAnimationController la; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); aa=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_activated_1 , new String[]{"Jack","Tom","Mali","kelusi"}); setListAdapter(aa); ScaleAnimation scale=new ScaleAnimation(0,1,0,1); scale.setDuration(1000); la=new LayoutAnimationController(scale, 0.5f); getListView().setLayoutAnimation(la); } }
为了使代码看起来更加简洁,我们使用XML配置ListView的动画效果,新建一个缩放动画效果res/anim/listview_scale.xml:
<?xml version="1.0" encoding="utf-8"?> <scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="0" android:toXScale="1" android:fromYScale="0" android:toYScale="1" android:duration="1000"> </scale>
新建一个LayoutAnimation,res/anim/listview_anim.xml(虽然layoutAnimation没有智能提示,但一样可以使用):
让LayoutAnimation的Animation=listview_scale.xml
<?xml version="1.0" encoding="utf-8"?> <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android" android:animation="@anim/listview_scale" android:delay="0.5"> </layoutAnimation>
新建一个布局文件 main.xml,在布局 文件内添加一个ListView ,将LayoutAnimation效果 添加到ListView:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:orientation="vertical" tools:context=".MainActivity" > <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layoutAnimation="@anim/listview_anim"> </ListView> </LinearLayout>
在这里需要特别注意,ListView的ID必须等 于
@android:id/list
后台代码就很简单 了,加载Main.xml即可
public class MainActivity extends ListActivity { private ArrayAdapter<String> aa; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); aa=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_activated_1 , new String[]{"Jack","Tom","Mali","kelusi"}); setListAdapter(aa); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }