首页 > 解决方案 > Glide 预加载可绘制资源图像

问题描述

我正在使用 Glide 图像加载库,并希望将我存储在设备上的一些图像预加载为可绘制资源(不是 URL!)。

因此,当按下按钮时,应该在ImageView.

问题是我第一次输入Fragment并通过按按钮循环图像时,图像会闪烁(因为它们已加载到内存中然后显示)。但是当我将所有图像加载到内存中时,循环看起来不错(没有闪烁)并且图像会立即显示。

我只是无法弄清楚预加载是如何工作的,并摆脱了闪烁。

所以我像这样加载我的图像(除了GlideApp线条之外的简化):

// Do this when loading the fragment.
for (i in 0..9) {
    for (j in 0..2) {
        val resInt = getImages(i)[j] // Returns R.drawable.image1, R.drawable.image2 etc.
        GlideApp.with(activity).load(resInt).diskCacheStrategy(DiskCacheStrategy.ALL).preload()
    }
}

...

// Do this when pressing the buttons
loadImage(activity, getImages(0)[1], day_image_view) // Load R.drawable.image2

...

fun loadImage(context: Context, res: Int, imageView: ImageView) {
    GlideApp.with(context).load(res).diskCacheStrategy(DiskCacheStrategy.ALL).dontAnimate().into(imageView)
}

谢谢你,祝你有美好的一天<3

标签: androidkotlinandroid-glidepreloadimage-preloader

解决方案


推荐阅读