安卓自学笔记:9:用AdapterViewFlipper创建一个可以自动播放的图片库

来源:互联网 发布:东方财富ddx源码 编辑:程序博客网 时间:2024/05/21 16:22

    用BaseAdapter做为AdapterViewFlipper的适配器,BaseAdapter负责提供所要显示的列表项。然后需要在getView()里边创建需要用到的控件。

主代码:

public class MainActivity extends Activity {AdapterViewFlipper flipper;int[] images = { R.drawable.p1, R.drawable.p2, R.drawable.p3,R.drawable.p4, R.drawable.p5, R.drawable.p6, R.drawable.p7,R.drawable.p8, R.drawable.p9, R.drawable.p10, R.drawable.p11,R.drawable.p12 };@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);flipper = (AdapterViewFlipper) findViewById(R.id.flipper);BaseAdapter adapter = new BaseAdapter() {@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic int getCount() {// 列表项的总数return images.length;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// 创建一个ImageViewImageView imageView = new ImageView(MainActivity.this);imageView.setImageResource(images[position]);// 设置imageView的布局参数imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));return imageView;}};flipper.setAdapter(adapter);}public void prev(View source) {// 显示上一个组件flipper.showPrevious();flipper.stopFlipping();}public void next(View source) {// 显示下一个组件flipper.showNext();flipper.stopFlipping();}public void play(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"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.adapterview.MainActivity" >    <!-- flipInterval是设置自动播放的时间间隔 -->    <AdapterViewFlipper        android:id="@+id/flipper"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_alignParentTop="true"        android:flipInterval="2000" >    </AdapterViewFlipper>    <!-- 通过onClick为几个按钮设置单机事件-->    <Button        android:id="@+id/prev"        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:id="@+id/next"        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:id="@+id/play"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_alignParentRight="true"        android:onClick="play"        android:text="自动播放" /></RelativeLayout>


 

效果如下:

0 0