在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Android/ 百戰(zhàn)經(jīng)典第十戰(zhàn)-LayoutAnimation布局動畫效果
百戰(zhàn)經(jīng)典第二十戰(zhàn)-ListView中點擊button跳轉(zhuǎn)到撥號界面實例
百戰(zhàn)經(jīng)典第十一戰(zhàn)-GridView動態(tài)添加Item
百戰(zhàn)經(jīng)典第二戰(zhàn)-好玩的Spinner控件
百戰(zhàn)經(jīng)典第五戰(zhàn)-各種對話框Dialog精彩薈萃
百戰(zhàn)經(jīng)典第八戰(zhàn)-BitmapFactory.Options對資源圖片進行縮放
百戰(zhàn)經(jīng)典第四戰(zhàn)-玩轉(zhuǎn)ListView
百戰(zhàn)經(jīng)典第十五-竊聽風(fēng)云之短信監(jiān)聽
前言
百戰(zhàn)經(jīng)典第十四戰(zhàn)-網(wǎng)絡(luò)交互,基于Baas用戶表查詢功能實現(xiàn)
百戰(zhàn)經(jīng)典第九戰(zhàn)-ViewFlipper實現(xiàn)幻燈效果
百戰(zhàn)經(jīng)典第三戰(zhàn)-實現(xiàn)畫圖板
百戰(zhàn)經(jīng)典第十七戰(zhàn)-基于加速度傳感器的搖一搖功能實例
百戰(zhàn)經(jīng)典第十戰(zhàn)-LayoutAnimation布局動畫效果
百戰(zhàn)經(jīng)典第七戰(zhàn)-顯示倒計時的Button按鈕
百戰(zhàn)經(jīng)典第六戰(zhàn)-Activity啟動模式小樣
百戰(zhàn)經(jīng)典第十二戰(zhàn)-GridView動態(tài)刪除Item
百戰(zhàn)經(jīng)典第十六戰(zhàn)-圖片或頭像設(shè)置功能
百戰(zhàn)經(jīng)典第十九戰(zhàn)-短信監(jiān)聽實現(xiàn)驗證碼自動填入
百戰(zhàn)經(jīng)典第一戰(zhàn)—聽話的TextView
百戰(zhàn)經(jīng)典第十八戰(zhàn)-自定義控件實現(xiàn)一鍵清空輸入框
百戰(zhàn)經(jīng)典第十三戰(zhàn)-網(wǎng)絡(luò)交互,基于Baas實現(xiàn)用戶注冊功能

百戰(zhàn)經(jīng)典第十戰(zhàn)-LayoutAnimation布局動畫效果

我們對Tween和Frame動畫比較熟悉,下面通過一個實例來了解一下LayoutAnimation(布局動畫) 首先要建立一個動畫文件zoom_in.xml:

<?xml version="1.0" encoding="utf-8"?>  
<set xmlns:android="http://schemas.android.com/apk/res/android" >  
    <scale  
        android:duration="1000"  
        android:fromXScale="0.1"  
        android:fromYScale="0.1"  
        android:pivotX="50%"  
        android:pivotY="50%"  
        android:toXScale="1.0"  
        android:toYScale="1.0" />  
    <alpha  
        android:duration="1000"  
        android:fromAlpha="0"  
        android:toAlpha="1.0" />  
</set> 

這是一個大小和漸變的組合動畫,scale是尺寸動畫,from*Scaleto*Scale指定了初始和結(jié)束時的大小,alpha是一個漸變動畫,duration表示漸變的持續(xù)時間,fromAlpha和toAlpha指定了初始的和結(jié)束的透明度。 MainActivity.java:

package com.example.layoutanimationdemo;   

public class MainActivity extends ActionBarActivity {  
    private List list = new ArrayList();  
    private ListView listView;  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        listView = (ListView) findViewById(R.id.list);  
        for (int i = 0; i < 20; i++) {  
            list.add("測試條目" + i);  
        }  
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(  
                MainActivity.this, android.R.layout.simple_list_item_1, list);  
        listView.setAdapter(adapter);  
        LayoutAnimationController layoutAnimationController = new LayoutAnimationController(  
                AnimationUtils.loadAnimation(this, R.anim.zoom_in));  
        layoutAnimationController  
                .setOrder(LayoutAnimationController.ORDER_NORMAL);  
        listView.setLayoutAnimation(layoutAnimationController);  
        listView.startLayoutAnimation();  

    }  
}  

考慮到版面問題,這里省略掉了導(dǎo)入的包,在IDE中這些包都可以自行導(dǎo)入。代碼比較簡單實現(xiàn),不懂的可以參照總結(jié)部分。 運行項目:

這里寫圖片描述 可以看到ListView中的條目一個個顯示出來,動畫效果可以讓我們的應(yīng)用交互性更強,用戶體驗更好,逼格也更高。

總結(jié)

1.實例化LayoutAnimationController 控制器,結(jié)合AnimationUtils工具類的loadAnimation方法引入動畫文件; 2.setOrder(LayoutAnimationController.ORDER_NORMAL);設(shè)置顯示順序,多種顯示風(fēng)格可選;

  • (a)int ORDER_NORMAL Distributes the animation delays in the order in which view were added to their view group.//正常動畫,由上往下
  • (b)int ORDER_RANDOM Randomly distributes the animation delays.//隨機動畫
  • (c)int ORDER_REVERSE Distributes the animation delays in the reverse order in which view were added to their view group.//倒序動畫

3.listView.setLayoutAnimation(layoutAnimationController);//設(shè)定動畫
listView.startLayoutAnimation();//啟動動畫