如何在再次保存图像之前检查图像是否已在内存中?

时间:2019-05-22 07:32:23

标签: java android android-glide

我注意到优化应用程序性能时,Glide必须检查图像是否已经在缓存中。现在来解决这个问题。

它如何工作?

使用下面的代码,我总是会在课程开始时再次保存图像并加载。

所以:

    Glide.with(mContext).load(Objects.requireNonNull(user).getImageurl()).donloadOnly(new SimpleTarget <File>(){
        @Override
        public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation){
            OGGER.debug("Photo downloaded");

            }
    });

Glide.with(mContext).load(Objects.requireNonNull(user).getImageurl()).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(image_profile);

或:

Glide.with(mContext).load(Objects.requireNonNull(user).getImageurl()).donloadOnly(new SimpleTarget <File>(){
    @Override
    public void onResourceReady(File resource, GlideAnimation<? super File> glideAnimation){
        OGGER.debug("Photo downloaded");

        Glide.with(mContext).load(Objects.requireNonNull(user).getImageurl()).diskCacheStrategy(DiskCacheStrategy.SOURCE).into(image_profile);
        }
});

Thx。 :)

1 个答案:

答案 0 :(得分:0)

正如他们在DOCS中提到的:

默认情况下,Glide在开始新的图像请求之前会检查多层缓存:

  1. 活动资源-该图像现在是否显示在另一个视图中?
  2. 内存缓存-该图像是否最近已加载并仍在内存中?
  3. 资源-此映像之前是否已解码,转换并写入磁盘缓存?
  4. 数据-此图像是从以前获得的数据写入磁盘缓存后获得的吗?

我强烈建议您阅读。 https://bumptech.github.io/glide/doc/caching.html#caching-in-glide

要将图像加载到ivImg(您的ImageView)中,只需执行以下操作:

Glide.with(context)
.load("http://via.placeholder.com/300.png")
.into(ivImg);