【问题标题】:Glide Does not use Cached ImageGlide 不使用缓存图像
【发布时间】:2020-09-23 14:30:39
【问题描述】:

您好,我正在使用 Glide 加载图像,在关注了许多帖子之后,我尝试使用 Glide 缓存来实现 RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL).centerCrop()

Glide.with(mContext) .load(imageUrl) .transition(ImageUtil.crossFadeTransition()) .apply(ImageUtil.requestOptionsForSlider()) .listener(glideRequestListner) .into(imageView)

我的知识是,如果我使用diskCacheStrategy(DiskCacheStrategy.ALL),那么上面的Glide 图像加载代码会在可用时自动使用缓存,如果没有,则下载,对吗?

但我每次调用代码时都会看到(检查我的网速计)它总是从给定的 url 获取/下载(即使我可以看到应用程序内存大小正在增加)。

我什至也试过这段代码-

val future: FutureTarget<File> = Glide.with(mContext) .load(imageUrl) .downloadOnly(500, 500)

似乎没有任何效果

我应该怎么做才能让Glide 使用缓存(如果可用)?我对缓存实现的概念有什么问题?非常感谢任何帮助!

【问题讨论】:

    标签: android image caching android-glide


    【解决方案1】:

    您确定它正在重新下载吗?您是否尝试在加载图像之前禁用互联网? 否则,对于同一张图片,您的图片 URL 是否始终相同? (因为 Glide 使用它作为缓存键)。 您可以在以下调用中使用它来检查图像是否在缓存中:

    Glide.with(fragment) .load(url) .onlyRetrieveFromCache(true) .into(imageView);

    【讨论】:

    • 是的,我试过了,但正如我提到的,我在下载时检查了互联网仪表,并且在互联网被禁用时也没有显示任何内容
    • .onlyRetrieveFromCache(true) 没有返回任何东西,没有图像
    • 我可以看到每次 imageurl 都被更改(后缀签名更改),所以我应该怎么做才能让 glide 明白它们是相同的图像
    • 你应该找到一种方法来唯一标识你的图像并给它一个签名......你的对象的名称或ID等。bumptech.github.io/glide/doc/caching.html#cache-keys
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-13
    • 2018-06-17
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    • 2017-02-06
    相关资源
    最近更新 更多