在项目中用到图片自动播放的效果,一开始想到的是定时播放用代码写出来,可是实际操作中,效果并不是很好,因此,自己写了一个demo,来运用android原生的控件,可以实现一样的效果,而且代码量不是很多,一个控件搞定,据此记录下来,以帮助些同样需求的朋友们!上图,无图无真相。
1.原理很简单,首先让我们先了解AdapterViewFlipper, AdapterViewFlipper继承了AdapterViewAnimator。它也会显示Adapter提供的多个View组件,但它每次只能显示一个组件。可以通过showPrevious()和showNext()方法控制该组件显示上一个,下一个;通过startFlipping()和stopFlipping()方法控制自动播放和停止自动播放。
AdapterViewFipper继承AdapterViewAnimator
实例:自动播放的图片库
使用AdapterViewFlipper开发自动播放的图片库,该实例的界面上除了包含一个AdapterViewFilpper之外,还包含三个按钮,用于控制显示“上一个”、“下一个”和“自动播放”。
XML布局文件:在xml中标定你要循环播放的间隔时间列如:
android:flipInterval="2000"
具体代码为:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<AdapterViewFlipper
android:id="@+id/avFlipper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:flipInterval="2000"
/>
<Button
android:id="@+id/pre"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="pre"
android:text="pre"
/>
<Button
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="next"
android:text="next"
/>
<Button
android:id="@+id/start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="start"
android:text="auto"
/>
</LinearLayout>
在activity中在引用,和其他控件一样
这其中我自己顶一个整形数组
int[]images = new int[] { R.drawable.a, R.drawable.b, R.drawable.c,
R.drawable.d, R.drawable.e, R.drawable.f, R.drawable.g };
adFlipperView = (AdapterViewFlipper) findViewById(R.id.avFlipper);
它和RecleView,listView一样,都要有具体的适配器,写一个适配器,这个大家都会写
<pre name="code" class="html">adFlipperView.setAdapter(adapter);
这样就可实现开头的那个效果。
源码<a target=_blank href="http://download.csdn.net/detail/we__we/9650425"" target="_blank">点击打开链接</a>