我想只在内存中加载和缓存图像,而不是将它们传递给视图,稍后当我需要将它们加载到UI上时,如果它们存在于内存中,则从内存缓存中获取它们.
我试过了:
Glide.with().load(uri).into(new SimpleTarget<GlideDrawable>(WIDTH,HEIGHT) { @Override public void onResourceReady(GlideDrawable resource,GlideAnimation<? super GlideDrawable> glideAnimation) { //left empty } } );
但是当我稍后调用在ImageView中加载uri时,它仍然会从路径加载它而不是内存.
是否有另一种方法可以将图像缓存在内存中而无需在UI上加载它们?
解决方法
有关如何在后台线程上缓存图像的文档可以在
here找到.
以下是页面中的一些示例代码,显示如何将文件下载到缓存,而不在UI中显示图像:
FutureTarget<File> future = Glide.with(applicationContext) .load(yourUrl) .downloadOnly(500,500); // Can be omitted if you only want to have the data cached (same goes for the "future" instance variable File cacheFile = future.get();
但是,请确保已配置Glide以启用缓存:https://github.com/bumptech/glide/wiki/Configuration