We are trying to preload images into cache memory to load them later (the images are located in the Asset folder of the application)
What we tried:
Glide.with(this)
.load(pictureUri)
.diskCacheStrategy(DiskCacheStrategy.ALL);
Glide.with(this)
.load(picture_uri)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.preload();
The issue: Images are cached only when we are trying to load/display them: They have to be loaded in memory before so that they appear faster.
Glide.with(this)
.load(picture_uri)
.into(imageView);
We also tried to use a GlideModule to increase the CacheMemory size:
public class GlideModule implements com.bumptech.glide.module.GlideModule {
@Override
public void applyOptions(Context context, GlideBuilder
builder.setMemoryCache(new LruResourceCache(100000));
}
@Override
public void registerComponents(Context context, Glide glide) {
}
}
In the manifest:
<meta-data android:name=".GlideModule" android:value="GlideModule"/>
Nothing is working so far. Any idea?
We trying to use an invisible 1 dp imageView, but the result is the same:
for(Drawing drawing: getDrawingsForTab(tab)){
Glide.with(this)
.load(drawing.getImage().toUri())
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(mPreloadCacheIv);
for(Picture picture : getPictures()){
Glide.with(this)
.load(picture.getPicture().toUri())
.dontAnimate()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(mPreloadCacheIv);
}
}
Use the following code to cache images without displaying them
using the downloadOnly
method if you are looking to download images from the web and store them in the diskCache:
FutureTarget<File> future = Glide.with(applicationContext)
.load(yourUrl)
.downloadOnly(500, 500);
using preload
method if you want to load them into the Memory Cache.
Glide.with(context)
.load(url)
.preload(500, 500);
You can later use the cached images using
Glide.with(yourFragment)
.load(yourUrl)
.into(yourView);