AdapterViewFlipper实现图片自动播放功能

来源:互联网 发布:*在vb是什么意思 编辑:程序博客网 时间:2024/05/16 07:45

概念:
AdapterViewFlipper继承了AdapterViewAnimator,它也会显示Adapter提供的多个View组件,但每次只能显示一个View组件,程序可通过showPrevious()和showNext()方法控制组件显示上一个,下一个组件。

相关方法:
1.startFilpping() 设置改组件是否自动播放
2.setFilpInterval(int) 设置自动播放的时间间隔
3.stopFilipping() 停止自动播放
4.showPrevious() 显示上一个组件
5.showNext() 显示下一个组件
实例讲解:

效果图如下(http://img.blog.csdn.net/20151003103640488)

activity_main代码如下:

 - <RelativeLayoutxmlns: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"          tools:context=".MainActivity">      <AdapterViewFlipper    android:id="@+id/flipper"          android:layout_width="match_parent"      android:layout_height="match_parent"             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_alignParentRight="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>

MainActivity代码如下:

public class MainActivity extends Activity {//存储图片资源   private int[] imageIds = newint[] { R.drawable.pic1, R.drawable.pic2,        R.drawable.pic3, R.drawable.pic4, R.drawable.pic5, R.drawable.pic6,        R.drawable.pic7, R.drawable.pic8, R.drawable.pic9,        R.drawable.pic10, };//自动播放控件   private AdapterViewFlipper flipper;   @Override   protecte dvoid onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.activity_main);      flipper = (AdapterViewFlipper) findViewById(R.id.flipper);      BaseAdapter adapter = new BaseAdapter() {        // 改方法返回的view代表了每个列表项        @Override        public View getView(int position, View convertView, ViewGroup parent) {           // 创建一个ImageView           ImageView imageView = new ImageView(MainActivity.this);           imageView.setImageResource(imageIds[position]);           // 设置ImageView的缩放类型           imageView.setScaleType(ImageView.ScaleType.FIT_XY);           // W为ImageView设置布局参数           imageView.setLayoutParams(new LayoutParams(                 LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));           return imageView;        }        @Override        publiclong getItemId(int position) {           return position;        }        @Override        public Object getItem(int position) {           return position;        }        @Override        publicint getCount() {           returnimageIds.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) {      // 设置自动播放的时间间隔为2秒      flipper.setFlipInterval(2000);      // 开始自动播放      flipper.startFlipping();    }}
1 0
原创粉丝点击