使用AdapterViewFiller组件设置图片轮播,该组件可以自动切换view

<?xml version="1.0" encoding="utf-8" ?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 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:layout_alignParentTop="true"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentStart="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_alignParentEnd="true" android:onClick="auto" android:text="自动播放"/> </RelativeLayout>

package com.example.adapterviewflipper import android.support.v7.app.AppCompatActivity import android.os.Bundle import android.view.View import android.view.ViewGroup import android.widget.AdapterViewFlipper import android.widget.BaseAdapter import android.widget.ImageView class MainActivity : AppCompatActivity() { private var imageIds = intArrayOf(R.drawable.shuangzi, R.drawable.shuangyu, R.drawable.chunv, R.drawable.tiancheng, R.drawable.tianxie, R.drawable.sheshou, R.drawable.juxie, R.drawable.shuiping, R.drawable.shizi, R.drawable.baiyang, R.drawable.jinniu, R.drawable.mojie) private var flipper: AdapterViewFlipper? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) flipper = findViewById(R.id.flipper) // 创建一个BaseAdapter对象,该对象负责提供AdapterViewFlipperTest所显示的列表项 val adapter = object : BaseAdapter() { override fun getCount(): Int { return imageIds.size } override fun getItem(position: Int): Any { return position } override fun getItemId(position: Int): Long { return position.toLong() } // 该方法返回的View代表了每个列表项 override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { val imageView: ImageView if (convertView == null) { // 创建一个ImageView imageView = ImageView(this@MainActivity) imageView.setImageResource(imageIds[position]) // 设置ImageView的缩放类型 imageView.scaleType = ImageView.ScaleType.FIT_XY // 为imageView设置布局参数 imageView.layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) } else { imageView = convertView as ImageView } return imageView } } flipper!!.adapter = adapter } fun prev(source: View) { // 显示上一个组件 flipper!!.showPrevious() // 停止自动播放 flipper!!.stopFlipping() } fun next(source: View) { // 显示下一个组件。 flipper!!.showNext() // 停止自动播放 flipper!!.stopFlipping() } fun auto(source: View) { // 开始自动播放 flipper!!.startFlipping() } }