这是我的应用的屏幕录像:https://drive.google.com/file/d/1fBxcp5oU6AeAFW6M68ARA6toYv3sh7MQ/view?usp=sharing
从服务器下载图像路径后,我想使用View Pager创建一些图像幻灯片来显示图像
从视频中可以看到,可以正确显示前两张图像,但是第三张和第四张图像将显示一段时间(空白,只有白色,没有图像),然后最终显示正确的图像< / p>
这不是该应用程序的首次启动,在我重新打开该应用程序之后,这种情况将再次发生。没有缓存?
为什么会这样?据我所知,Glide库默认会缓存图像。所以我希望我不会重新下载图片
这是我的寻呼机适配器类:
class ImageSlideShowAdapter(val context: Context, val banners: List<Banner>) : PagerAdapter() {
override fun isViewFromObject(view: View, o: Any): Boolean {
return view === o
}
override fun getCount(): Int {
return banners.size
}
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val imageView = ImageView(context)
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP)
Glide
.with(context)
.load(banners.get(position).getFormattedImageURL())
.into(imageView)
container.addView(imageView)
return imageView
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as View)
}
}
答案 0 :(得分:0)
您没有缓存图像
在应用级别build.gradle
的顶部添加apply plugin: 'kotlin-kapt'
依存关系
implementation 'com.github.bumptech.glide:glide:4.8.0'
kapt 'com.github.bumptech.glide:compiler:4.8.0' // for Kotlin
添加此类
import com.bumptech.glide.annotation.GlideModule
import com.bumptech.glide.module.AppGlideModule
@GlideModule
class MyAppGlideModule : AppGlideModule()
重建将生成GlideApp
的项目
使用diskCacheStrategy
缓存图像
GlideApp.with(context)
.load(banners.get(position).getFormattedImageURL())
.diskCacheStrategy(DiskCacheStrategy.DATA)
.into(imageView)