[Android Pro] Android的Animation之LayoutAnimation使用方法


用於為一個里面的控件,或者是一個里面的控件設置動畫效果,可以在文件中設置,亦可以在代碼中設置。

一種直接在XML文件中設置

1.  res/anim文件夾下新建一個XML文件,名為list_anim_layout.xml,

    <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"  
            android:delay="30%"  
            android:animationOrder="reverse"  
            android:animation="@anim/slide_right" />  

android:delay  子類動畫時間間隔 (延遲)   70% 也可以是一個浮點數 如“1.2”等

android:animationOrder="random"   子類的顯示方式 random表示隨機

android:animationOrder 的取值有 

normal 0    默認
reverse 1   倒序
random 2   隨機

android:animation="@anim/slide_right" 表示孩子顯示時的具體動畫是什么


說明:其中delay的單位為秒;animation為設置動畫的文件。animationOrder為進入方式

2.  res/anim文件夾下新建一個XML文件,名為slide_right,即上面用到的文件。

 

        <set xmlns:android="http://schemas.android.com/apk/res/android"   
            android:interpolator="@android:anim/accelerate_interpolator">  
        <translate android:fromXDelta="-100%p" android:toXDelta="0"  
                android:duration="@android:integer/config_shortAnimTime" />  
    </set>  

 

    <set xmlns:android="http://schemas.android.com/apk/res/android"   
            android:interpolator="@android:anim/accelerate_interpolator">  
        <translate android:fromXDelta="-100%p" android:toXDelta="0"  
                android:duration="@android:integer/config_shortAnimTime" />  
    </set>  

 顯示的效果為ListView第一次出現的時候為 item隨機出現 每個Item都是從左不可見(-100%p)的區域向右滑動到顯示的地方

3.  在主布局文件中為控件添加如下配置:

android:layoutAnimation="@anim/list_anim_layout",即第一步的布局文件。

 

 

第二種設置方法:在Java代碼中設置

 

1. 同上;

 

2. 同上;

 

4.  Acitivty中添加如下代碼:

 


 

//通過加載XML動畫設置文件來創建一個Animation對象;

 

       Animation animation=AnimationUtils.loadAnimation(this, R.anim.list_anim);

 

       //得到一個LayoutAnimationController對象;

 

       LayoutAnimationController lac=new LayoutAnimationController(animation);

 

       //設置控件顯示的順序;

 

       lac.setOrder(LayoutAnimationController.ORDER_REVERSE);

 

       //設置控件顯示間隔時間;

 

       lac.setDelay(1);

 

       //ListView設置LayoutAnimationController屬性;

 

   datalist.setLayoutAnimation(lac);

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM