android studio实现图片轮播的代码
时间: 2023-10-26 14:37:17 浏览: 49
您可以通过使用ViewPager和PagerAdapter实现图片轮播的功能,以下是实现图片轮播的示例代码:
1. 在您的布局XML文件中,添加一个ViewPager和一个指示器:
<androidx.viewpager.widget.ViewPager
android:id="@+id/viewPager"
android:layout_width="match_parent"
android:layout_height="200dp"/>
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/transparent"
app:tabGravity="center"
app:tabIndicatorColor="@color/colorPrimary"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/colorPrimary"
app:tabTextColor="@color/white"/>
2. 在您的Activity或Fragment中,设置ViewPager和PagerAdapter:
private fun initBanner() {
val adapter = BannerAdapter(this, images)
viewPager.adapter = adapter
tabLayout.setupWithViewPager(viewPager, true)
// 自动滚动
Timer().schedule(object : TimerTask() {
override fun run() {
runOnUiThread {
if (currentIndex == images.size - 1) {
currentIndex = 0
} else {
currentIndex++
}
viewPager.currentItem = currentIndex
}
}
}, 3000, 3000)
}
class BannerAdapter(private val ctx: Context, private val images: ArrayList<String>) : PagerAdapter() {
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val imageView = ImageView(ctx)
imageView.scaleType = ImageView.ScaleType.CENTER_CROP
Glide.with(ctx).load(images[position])
.into(object : SimpleTarget<Drawable>() {
override fun onResourceReady(
resource: Drawable,
transition: Transition<in Drawable>?
) {
imageView.setImageDrawable(resource)
container.addView(imageView)
}
})
return imageView
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as View)
}
override fun getCount() = images.size
override fun isViewFromObject(view: View, `object`: Any) = view == `object`
}
这段代码中,我们使用Glide来加载图片,设置一个定时器来自动滚动图片,并且在setupWithViewPager()中设置了一个指示器。当然,您可以根据自己的需求来修改代码。
希望这段代码能够对您有所帮助!