AdapterViewFlipper的功能和用法

来源:互联网 发布:自然知彼怎么代理 编辑:程序博客网 时间:2024/05/21 06:12

AdapterViewFlipper继承了AdapterViewAnimator,它会显示一个View组件,可以通过showPrevious()showNext()方法控制组件显示上一个、下一个组件。


XML属性:

android:animateFirstView:设置显示该组件的第一个View时是否使用动画

android:inAnimation:设置组件显示时使用的动画

android:loopViews:设置循环到最后一个组件后是否自动“转头”到第一个组件

android:outAnimation:设置组件隐藏时使用的动画

android:autoStart:设置显示该组件是否是自动播放

android:flipInterval:设置自动播放的时间间隔


这些是这个的XML的一些属性。

下边,我们通过一个具体的例子来说明下它的功能


首先,我们新建一个Android项目,我们首先编辑下main.xml文件:

[html] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  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:

[java] view plaincopyprint?在CODE上查看代码片派生到我的代码片
  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应用的播放图片的功能了。


效果图如下:



0 0