Android创建与配置布局动画

本文主要介绍Android中创建与配置布局动画的相关操作,主要包括:

        1.为布局添加动画效果

        2.布局内容改变动画效果

        3.为列表添加布局动画效果

        4.使用资源文件配置布局动画

详细代码:github.com/Baolvlv/LearnAndroid/tree/master/LayoutAnimation


1.为布局添加动画效果

布局的动画添加到布局所有的子容器中,使用LayoutAnimationController

在fragment的onCreatView函数中,首先设置动画,将动画添加到LayoutAnimationController中

在将LayoutAnimationConTroller的对象添加到返回的view 中

LinearLayout rootView = (LinearLayout) inflater.inflate(R.layout.fragment_main,container,false);

ScaleAnimation sa =newScaleAnimation(0,1,0,1);

sa.setDuration(5000);

//第二个参数为延时,第二个组件在第一个动画一半的时开始

LayoutAnimationController lac =newLayoutAnimationController(sa,0.5f);

//设置动画顺序,从上往下,从下往上,随机

lac.setOrder(LayoutAnimationController.ORDER_RANDOM);

rootView.setLayoutAnimation(lac);

returnrootView;

MainActivity中解析fragment后即可使用

if(savedInstanceState ==null){

getSupportFragmentManager()

.beginTransaction()

.replace(R.id.activity_main,newExampleFragment())

.commit();

2.布局内容改变动画效果

在res文件夹下新建menu文件夹,编写一个加号的actionBar,

xmlns:app="http://schemas.android.com/apk/res-auto">

android:orderInCategory="100"

app:showAsAction="never"

android:title="action_setting"/>

app:showAsAction="always"

android:icon="@android:drawable/ic_input_add"

android:title="lll”/>

在MainActivity中,重写onCreateOptionsMenu方法,加载menu资源

@Override

public booleanonCreateOptionsMenu(Menu menu) {

MenuInflater menuInflater = getMenuInflater();

menuInflater.inflate(R.menu.main,menu);

return super.onCreateOptionsMenu(menu);

}

重写当选择不同的item时,执行的操作

@Override

public booleanonOptionsItemSelected(MenuItem item) {

switch(item.getItemId()){

caseR.id.action_settings:

return true;

caseR.id.action_add:

addButton();

default:

break;

}

在主布局资源文件中设置布局资源改变后的有动画效果

android:animateLayoutChanges="true"

3.为列表添加布局动画效果

为列表添加动画效果与为布局添加动画效果相同,都是用LayoutAnimationController

设置列表

adapter=newArrayAdapter(this,android.R.layout.simple_list_item_1,newString[]{"kk","bss","welcome"});

setListAdapter(adapter);

设置动画

sa=newScaleAnimation(0,1,0,1);

sa.setDuration(1000);

实例化LayoutAnimationController

lac=newLayoutAnimationController(sa,0.5f);

为listView添加动画

getListView().setLayoutAnimation(lac);

4.使用资源文件配置布局动画

先在res文件夹下新建anim文件夹,创建动画的xml文件

xmlns:android="http://schemas.android.com/apk/res/android"

android:fromXScale="0"

android:toXScale="1"

android:fromYScale="0"

android:toYScale="1"

android:duration="1000”/>

再创建layout animtion的xml文件,包含刚才创建的动画

xmlns:android="http://schemas.android.com/apk/res/android"

android:animation="@anim/scale_0_1"

android:delay="0.5">

再创建主布局资源文件,包含刚才创建的布局动画,当主布局有listView时,必须包含标签,且id必须为@android:id/list

http://schemas.android.com/apk/res/android"

android:orientation="vertical"android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@android:id/list"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layoutAnimation="@anim/listview_anim"/>

最后为主activity添加布局资源即可

setContentView(R.layout.main);

你可能感兴趣的:(Android创建与配置布局动画)