Android ListView item項 顯示動畫


(1)使用LayoutAnimation

    所謂的布局動畫,其實就是為ViewGroup添加顯示動畫效果,主要用過LayoutAnimationController來控制實現。LayoutAnimationController用於為一個Layout里面的控件,或者是一個ViewGroup里面的控件設置動畫效果,可以在XML文件中設置,亦可以在Java代碼中設置。

注意:布局動畫是在android布局發生變化時添加動畫效果,layout動畫在每次布局發生變化的時候系統調用的一個預加載動畫效果,使用layout動畫可以讓布局的變化過度看起來更自然

  1. 通過創建xml文件,其中list_anim在res/anim/list_anim.xml:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <set xmlns:android="http://schemas.android.com/apk/res/android"
 3   android:interpolator="@android:anim/accelerate_interpolator"
 4   android:shareInterpolator="true" >
 5 
 6   <alpha
 7     android:duration="1000"
 8     android:fromAlpha="0.0"
 9     android:toAlpha="1.0" />
10 
11 </set>

  2. 為ListView的layoutAnimation創建list_anim_layout.xml:

1 <?xml version="1.0" encoding="utf-8"?>
2 <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
3     android:delay="2"
4     android:animationOrder="normal"
5     android:animation="@anim/list_anim"/>
1 <ListView
2       ...
3       ...4       android:layoutAnimation="@anim/list_anim_layout"/>
1 // 在代碼中實現列表動畫
2         Animation animation = (Animation) AnimationUtils.loadAnimation(
3           mContext, R.anim.list_anim);
4         LayoutAnimationController lac = new LayoutAnimationController(animation);
5         lac.setDelay(0.4f);  //設置動畫間隔時間
6         lac.setOrder(LayoutAnimationController.ORDER_NORMAL); //設置列表的顯示順序
7         mListView.setLayoutAnimation(lac);  //為ListView 添加動畫

 

(2)通過 Adapter.getView() 方法

    通過getView(int position, View convertView, ViewGroup parent) 返回的 view,進行對其動畫操作就可。

e.g. :水平向上移動並翻轉360度。

1 ObjectAnimator.ofFloat(convertView, "translationY", 400, 0).setDuration(1000).start();
2 ObjectAnimator.ofFloat(convertView, "rotationX", 360, 0).setDuration(1000).start();

 

參考:Layout動畫:在android布局發生變化時添加動畫效果

Android的Animation之LayoutAnimation使用方法

Android 從布局動畫引入ListView滑動時,每一Item項的顯示動畫

 


免責聲明!

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



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