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>
效果截图
Demo下载地址:http://download.csdn.net/detail/gc_gongchao/8129893
转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/25611263