使用Glide v4预加载图像不起作用

时间:2017-10-19 13:33:02

标签: android android-glide preloading image-preloader

我正在尝试使用Glide on app start预加载并将这些图像缓存到磁盘。我的预加载代码如下所示:

fun ImageView.loadImageFromUrl(imageUrl: String, activity: Activity, useCrossFade: Boolean = DEFAULT_CROSS_FADE_SETTING) {
GlideApp.with(activity).loadWithDefaultConfigInto(imageUrl, this, useCrossFade)}

private fun RequestManager.loadWithDefaultConfigInto(imageUrl: String, imageView: ImageView, useCrossFade: Boolean) {

    val transitionOptions: DrawableTransitionOptions = if (useCrossFade) DrawableTransitionOptions.withCrossFade() else DrawableTransitionOptions().dontTransition()

    this.load(imageUrl)
            .apply(RequestOptions().diskCacheStrategy(DEFAULT_DISK_CACHE_STRATEGY_GLIDE))
            .transition(transitionOptions)
            .into(imageView)
}

要将图像加载到图像视图中,我的代码如下所示:

Integer.toHexString()

但显然图像的磁盘缓存无法正常工作。因为当我通过Charles检查网络请求时,我看到所有图像网址都在应用程序启动时加载,但是当需要这些预加载的图像时,应用程序再次点击网络并再次加载相同的图像网址。

我需要做些什么才能使预加载和磁盘缓存工作?

1 个答案:

答案 0 :(得分:1)

这是一个非常老的问题,但无论如何它还是会出现:

您似乎在预加载时使用签名,而不是在此后加载图像时使用签名,因此它们不会进入缓存。