使用 Glide 将图片永久保存在缓存中

Posted

技术标签:

【中文标题】使用 Glide 将图片永久保存在缓存中【英文标题】:save the pictures in the cache forever with Glide 【发布时间】:2021-04-18 02:42:33 【问题描述】:

我想尽可能长时间地保存缓存中的图片。您可以建议一个代码来执行此过程。谢谢。

【问题讨论】:

【参考方案1】:

Glide 默认使用内存和磁盘缓存来避免不必要的网络请求,并提供调整内存和磁盘缓存行为的方法:

GlideApp  
.with(context)
  .load(//...)
  .skipMemoryCache(false)
  .into(imageView);

Glide 默认会将所有图片资源放入内存缓存中。因此,不需要特定的调用 .skipMemoryCache( false )。如果您停用内存缓存,请求图像仍将存储在设备的磁盘存储中。

    val requestOptions = RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL)
Glide.with(context).load(url).apply(requestOptions).into(imageView)

【讨论】:

谢谢你的回答我用这个代码是这个代码正确 Glide.with(context) .load(DataCoupon.get(position).getImage_product()) .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC) .into( holder.ImageProduct); 这可能是正确的,取决于您的策略。如果答案对您有用,请接受并投票。【参考方案2】:

试试这个,但我不确定

Glide.with(context)
                .load(constant.BASE_URL+"images/"+data.getPicture())
                .apply(new RequestOptions()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .dontAnimate()
                .centerCrop()
                .dontTransform())
                .into(holder.imageView);

【讨论】:

谢谢你的回答我用这个代码是这个代码正确 Glide.with(context) .load(DataCoupon.get(position).getImage_product()) .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC) .into( holder.ImageProduct);

以上是关于使用 Glide 将图片永久保存在缓存中的主要内容,如果未能解决你的问题,请参考以下文章

Glide 缓存机制及源码

Android:深入剖析图片加载库Glide缓存功能(源码分析)

Glide图片加载的用法介绍和三级缓存实现

Glide系列之缓存策略

Glide 缓存使用

Glide ② — 缓存机制