AdapterViewFlipper的功能和用法

AdapterViewFlipper繼承了AdapterViewAnimator,它會顯示一個View組件,可以通過showPrevious()showNext()方法控制組件顯示上一個、下一個組件。


XML屬性:

android:animateFirstView:設置顯示該組件的第一個View時是否使用動畫

android:inAnimation:設置組件顯示時使用的動畫

android:loopViews:設置循環到最後一個組件後是否自動“轉頭”到第一個組件

android:outAnimation:設置組件隱藏時使用的動畫

android:autoStart:設置顯示該組件是否是自動播放

android:flipInterval:設置自動播放的時間間隔


這些是這個的XML的一些屬性。

下邊,我們通過一個具體的例子來說明下它的功能


首先,我們新建一個Android項目,我們首先編輯下main.xml文件:

  1. <span style="font-size:14px;"><?xml version="1.0" encoding="utf-8" ?>  
  2. <RelativeLayout  
  3.     xmlns:android="http://schemas.android.com/apk/res/android"  
  4.     android:layout_width="match_parent"  
  5.     android:layout_height="match_parent">  
  6.     <AdapterViewFlipper  
  7.         android:id="@+id/flipper"  
  8.         android:layout_width="match_parent"  
  9.         android:layout_height="match_parent"  
  10.         android:flipInterval="5000"  
  11.         android:layout_alignParentTop="true"/>  
  12.     <Button   
  13.         android:layout_width="wrap_content"  
  14.         android:layout_height="wrap_content"  
  15.         android:layout_alignParentBottom="true"  
  16.         android:layout_alignParentLeft="true"  
  17.         android:onClick="prev"  
  18.         android:text="上一個"  
  19.         />  
  20.     <Button   
  21.         android:layout_width="wrap_content"  
  22.         android:layout_height="wrap_content"  
  23.         android:layout_alignParentBottom="true"  
  24.         android:layout_centerHorizontal="true"  
  25.         android:onClick="next"  
  26.         android:text="下一個"  
  27.         />  
  28.     <Button   
  29.         android:layout_width="wrap_content"  
  30.         android:layout_height="wrap_content"  
  31.         android:layout_alignParentBottom="true"  
  32.         android:layout_alignParentRight="true"  
  33.         android:onClick="auto"  
  34.         android:text="自動播放"  
  35.         />     
  36. </RelativeLayout></span>  
可以看到,上邊有四個組件,一個AdapterViewFlipper和三個Button,分別代表上一個、下一個、自動播放

並且爲三個Button設置了點擊事件


接下來我們開始編輯AdapterViewFlipperTest.java:

  1. <span style="font-size:14px;">package org.crazyit.ui;  
  2.   
  3. import android.os.Bundle;  
  4. import android.view.View;  
  5. import android.view.ViewGroup;  
  6. import android.view.ViewGroup.LayoutParams;  
  7. import android.widget.AdapterViewFlipper;  
  8. import android.widget.BaseAdapter;  
  9. import android.widget.ImageView;  
  10. import android.app.Activity;  
  11.   
  12. public class AdapterViewFlipperTest extends Activity  
  13. {  
  14.     int[] imageIds = new int[]  
  15.     {  
  16.         R.drawable.shuangzi, R.drawable.shuangyu,  
  17.         R.drawable.chunv, R.drawable.tiancheng, R.drawable.tianxie,  
  18.         R.drawable.sheshou, R.drawable.juxie, R.drawable.shuiping,  
  19.         R.drawable.shizi, R.drawable.baiyang, R.drawable.jinniu,  
  20.         R.drawable.mojie   
  21.     };  
  22.     AdapterViewFlipper flipper;  
  23.   
  24.     @Override  
  25.     public void onCreate(Bundle savedInstanceState)  
  26.     {  
  27.         super.onCreate(savedInstanceState);  
  28.         setContentView(R.layout.main);  
  29.         flipper = (AdapterViewFlipper) findViewById(R.id.flipper);  
  30.         // 創建一個BaseAdapter對象,該對象負責提供Gallery所顯示的列表項  
  31.         BaseAdapter adapter = new BaseAdapter()  
  32.         {  
  33.             @Override  
  34.             public int getCount()  
  35.             {  
  36.                 return imageIds.length;  
  37.             }  
  38.   
  39.             @Override  
  40.             public Object getItem(int position)  
  41.             {  
  42.                 return position;  
  43.             }  
  44.   
  45.             @Override  
  46.             public long getItemId(int position)  
  47.             {  
  48.                 return position;  
  49.             }  
  50.   
  51.             // 該方法的返回的View就是代表了每個列表項  
  52.             @Override  
  53.             public View getView(int position, View convertView, ViewGroup parent)  
  54.             {  
  55.                 // 創建一個ImageView  
  56.                 ImageView imageView = new ImageView(AdapterViewFlipperTest.this);  
  57.                 imageView.setImageResource(imageIds[position]);  
  58.                 // 設置ImageView的縮放類型  
  59.                 imageView.setScaleType(ImageView.ScaleType.FIT_XY);  
  60.                 // 爲imageView設置佈局參數  
  61.                 imageView.setLayoutParams(new LayoutParams(  
  62.                         LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));  
  63.                 return imageView;  
  64.             }  
  65.         };  
  66.         flipper.setAdapter(adapter);  
  67.     }  
  68.   
  69.     public void prev(View source)  
  70.     {  
  71.         // 顯示上一個組件  
  72.         flipper.showPrevious();  
  73.         // 停止自動播放  
  74.         flipper.stopFlipping();  
  75.     }  
  76.   
  77.     public void next(View source)  
  78.     {  
  79.         // 顯示下一個組件。  
  80.         flipper.showNext();  
  81.         // 停止自動播放  
  82.         flipper.stopFlipping();  
  83.     }  
  84.   
  85.     public void auto(View source)  
  86.     {  
  87.         // 開始自動播放  
  88.         flipper.startFlipping();  
  89.     }  
  90. }  
  91. </span>  


通過這些,我們就可以設置出一些APP應用的播放圖片的功能了。


效果圖如下:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章