我正在尝试使用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检查网络请求时,我看到所有图像网址都在应用程序启动时加载,但是当需要这些预加载的图像时,应用程序再次点击网络并再次加载相同的图像网址。
我需要做些什么才能使预加载和磁盘缓存工作?
答案 0 :(得分:1)
这是一个非常老的问题,但无论如何它还是会出现:
您似乎在预加载时使用签名,而不是在此后加载图像时使用签名,因此它们不会进入缓存。