Android实战简易教程<十七>(LayoutAnimation布局动画)

我们对Tween和Frame动画比较熟悉,下面我们通过一个实例来了解一下LayoutAnimation(布局动画)

首先我们要建立一个动画文件zoom_in.xml:

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <scale  
  5.         android:duration="1000"  
  6.         android:fromXScale="0.1"  
  7.         android:fromYScale="0.1"  
  8.         android:pivotX="50%"  
  9.         android:pivotY="50%"  
  10.         android:toXScale="1.0"  
  11.         android:toYScale="1.0" />  
  12.   
  13.     <alpha  
  14.         android:duration="1000"  
  15.         android:fromAlpha="0"  
  16.         android:toAlpha="1.0" />  
  17.   
  18. </set>  


main.xml:

[html]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <set xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <scale  
  5.         android:duration="1000"  
  6.         android:fromXScale="0.1"  
  7.         android:fromYScale="0.1"  
  8.         android:pivotX="50%"  
  9.         android:pivotY="50%"  
  10.         android:toXScale="1.0"  
  11.         android:toYScale="1.0" />  
  12.   
  13.     <alpha  
  14.         android:duration="1000"  
  15.         android:fromAlpha="0"  
  16.         android:toAlpha="1.0" />  
  17.   
  18. </set>  

MainActivity.java:

[java]  view plain copy
  1. package com.example.layoutanimationdemo;  
  2.   
  3. import java.util.ArrayList;  
  4. import java.util.List;  
  5.   
  6. import android.support.v7.app.ActionBarActivity;  
  7. import android.support.v7.app.ActionBar;  
  8. import android.support.v4.app.Fragment;  
  9. import android.R.anim;  
  10. import android.content.Loader.ForceLoadContentObserver;  
  11. import android.os.Bundle;  
  12. import android.view.LayoutInflater;  
  13. import android.view.Menu;  
  14. import android.view.MenuItem;  
  15. import android.view.View;  
  16. import android.view.ViewGroup;  
  17. import android.view.animation.Animation;  
  18. import android.view.animation.AnimationUtils;  
  19. import android.view.animation.LayoutAnimationController;  
  20. import android.widget.ArrayAdapter;  
  21. import android.widget.ListView;  
  22. import android.os.Build;  
  23.   
  24. public class MainActivity extends ActionBarActivity {  
  25.     private List list = new ArrayList();  
  26.     private ListView listView;  
  27.   
  28.     @Override  
  29.     protected void onCreate(Bundle savedInstanceState) {  
  30.         super.onCreate(savedInstanceState);  
  31.         setContentView(R.layout.activity_main);  
  32.         listView = (ListView) findViewById(R.id.list);  
  33.   
  34.         for (int i = 0; i < 20; i++) {  
  35.             list.add("测试条目" + i);  
  36.         }  
  37.         ArrayAdapter<String> adapter = new ArrayAdapter<String>(  
  38.                 MainActivity.this, android.R.layout.simple_list_item_1, list);  
  39.         listView.setAdapter(adapter);  
  40.         LayoutAnimationController layoutAnimationController = new LayoutAnimationController(  
  41.                 AnimationUtils.loadAnimation(this, R.anim.zoom_in));  
  42.         layoutAnimationController  
  43.                 .setOrder(LayoutAnimationController.ORDER_NORMAL);  
  44.         listView.setLayoutAnimation(layoutAnimationController);  
  45.         listView.startLayoutAnimation();  
  46.   
  47.     }  
  48. }  


运行实例:

总结:

1.LayoutAnimationController 控制器,引入动画文件;

2.setOrder(LayoutAnimationController.ORDER_NORMAL);设置显示顺序,多种显示风格可选;

3.listView.setLayoutAnimation(layoutAnimationController);//设定动画

listView.startLayoutAnimation();//启动动画

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值