AndroidUI 布局动画-为列表添加布局动画效果

新建一个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;
    }
    
}



posted @ 2015-10-02 15:10  Bodi  阅读(801)  评论(0编辑  收藏  举报