您的位置:首页 > 产品设计 > UI/UE

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

2016-12-01 00:00 579 查看
新建一个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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: