首页 > 代码库 > AndroidUI组件之AdapterViewFilpper

AndroidUI组件之AdapterViewFilpper

package com.gc.adapterviewflipperdemo;
/**
 * 功能:自动播放的图片库
 * @author Android将军
 */
/*
 * 1、AdapterViewFilpper继承了AdapterViewAnimator,它也会
 * 显示Adapter提供的多个View组件,但它每次只能显示一个View组件
 * ,程序可通过showPrevious()和showNext()方法控制该组件显示
 * 上一个、下一个组件。
 * 2、AdapterViewFilpper可以在多个View切换过程中使用渐隐渐现的
 * 动画效果,除此之外,还可以调用该组件的startFlipping()控制它
 * “自动播放”下一个View组件。
 * 3、AdapterViewAnimator支持的XML属性:
 * android:animateFirstView-----------设置显示该组件的第一个View时是否使用动画
 * android:inAnimation----------------设置组件显示时使用的动画
 * android:loopViews------------------设置循环到最后一个组件后是否自动“转头”到第一个组件
 * android:outAnimation---------------设置组件隐藏时使用的动画
 * 4、AdapterViewFillper可以额外支持的XML属性:
 * android:autoStart------------------设置显示该组件是否自动播放
 * android:flipInterval---------------设置自动播放的时间间隔
 */


import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterViewFlipper;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class MainActivity extends Activity {

	private int [] imageIds=new int[]
			{
			R.drawable.addresslist1,R.drawable.conference2,R.drawable.daiban3,
			R.drawable.email4,R.drawable.file5,R.drawable.infrom6,
			R.drawable.organization7,R.drawable.publicfile8,R.drawable.request9,
			R.drawable.sign10,R.drawable.task11,R.drawable.work12
			};
	private AdapterViewFlipper flipper;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		flipper=(AdapterViewFlipper)findViewById(R.id.flipper);
		//创建一个BaseAdapter对象,该对象负责提供AdapterViewFlipper所显示的列表项
		BaseAdapter adapter=new BaseAdapter() {
			//该方法返回的View代表了每个列表项
			@Override
			public View getView(int position, View convertView, ViewGroup parent) {
				// TODO Auto-generated method stub
				//创建一个ImageView
				ImageView imageView=new ImageView(MainActivity.this);
				imageView.setImageResource(imageIds[position]);
				//设置ImageView的缩放类型
				imageView.setScaleType(ImageView.ScaleType.FIT_XY);
				//为imageView设置布局参数
				imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
				
				return imageView;
			}
			
			@Override
			public long getItemId(int position) {
				// TODO Auto-generated method stub
				return position;
			}
			
			@Override
			public Object getItem(int position) {
				// TODO Auto-generated method stub
				return position;
			}
			
			@Override
			public int getCount() {
				// TODO Auto-generated method stub
				return imageIds.length;
			}
		};
		flipper.setAdapter(adapter);
	}
	public void prev(View source)
	{
		//显示上一个组件
		flipper.showPrevious();
		//停止自动播放
		flipper.stopFlipping();
	}
	public void next(View source)
	{
		//显示下一个组件
		flipper.showNext();
		//停止自动播放
		flipper.stopFlipping();
	}
	public void auto(View source)
	{
		//开始自动播放
		flipper.startFlipping();
	}

	

}
布局文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
   >

  <AdapterViewFlipper
      android:id="@+id/flipper"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:flipInterval="5000"
      android:autoStart="true"
      android:layout_alignParentTop="true"
      />
  <Button 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_alignParentLeft="true"
      android:onClick="prev"
      android:text="上一个"
      />
  <Button 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_centerHorizontal="true"
      android:onClick="next"
      android:text="下一个"
      />
  <Button 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:layout_alignParentBottom="true"
      android:layout_alignParentRight="true"
      android:onClick="auto"
      android:text="自动播放"
      />

</RelativeLayout>

效果截图


转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/25611263