Android中使用AdapterViewFlipper实现自动播放的图库

来源:互联网 发布:陕西广电网络电视资费 编辑:程序博客网 时间:2024/05/16 09:46

AdapterViewFlipper继承了AdapterViewAnimoter,可以显示Adapter提供的View组件,但是每次只能显示一个,可以通过其showPrevious()和showNext()方法实现显示上一个,下一个组件


实现思路:在布局中加入AdapterViewFlipper,在代码中为其创建一个BaseAdapter即可实现

  • 布局文件
<?xml version="1.0" encoding="utf-8"?><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="top.hellowoodes.adapterviewflipper.MainActivity">    <AdapterViewFlipper        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/adapterViewFlipper"        android:flipInterval="2000"        android:layout_alignParentTop="true"        android:layout_alignParentStart="true" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="上一个"        android:id="@+id/button"        android:onClick="prev"        android:layout_alignParentBottom="true"        android:layout_alignParentStart="true" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="下一个"        android:id="@+id/button2"        android:onClick="next"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="自动播放"        android:id="@+id/button3"        android:onClick="auto"        android:layout_alignParentBottom="true"        android:layout_alignParentEnd="true" /></RelativeLayout>
  • 代码文件
public class MainActivity extends AppCompatActivity {    int[] imageIds = new int[]{R.drawable.a,R.drawable.b,R.drawable.c};    AdapterViewFlipper adapterViewFlipper;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        adapterViewFlipper = (AdapterViewFlipper) findViewById(R.id.adapterViewFlipper);        //创建一个BaseAdapter对象,用于提供所显示的列表项        BaseAdapter adapter = new BaseAdapter() {            @Override            public int getCount() {                return imageIds.length;            }            @Override            public Object getItem(int position) {                return position;            }            @Override            public long getItemId(int position) {                return position;            }            //该方法返回的View代表了每个列表项            @Override            public View getView(int position, View convertView, ViewGroup parent) {                ImageView imageView = new ImageView(MainActivity.this);                imageView.setImageResource(imageIds[position]);                imageView.setScaleType(ImageView.ScaleType.FIT_XY);                imageView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));                return imageView;            }        };        adapterViewFlipper.setAdapter(adapter);    }    public void prev(View source) {        //显示上一个组件        adapterViewFlipper.showPrevious();        //停止自动播放        adapterViewFlipper.stopFlipping();    }    public void next(View source) {        //显示下一个组件        adapterViewFlipper.showNext();        adapterViewFlipper.stopFlipping();    }    public void auto(View source) {        //开始自动播放        adapterViewFlipper.startFlipping();    }}
0 0
原创粉丝点击