Glide有自动缓存的功能,但也是第一次先得加载一遍才行,如果进了加载图片的那个页面再进行加载的话,会有一小段时间的空白区,毕竟网络请求也是需要时间的,所以在特殊的时候,我们要采用glide的一些方法,可以让其提前就进行加载缓存,这样到达我们需要加载的页面就会显示的非常快,毕竟已经缓存到本地了。
必须在子线程中
new Thread(new Runnable() {
@Override
public void run() {
FutureTarget<File> fileFutureTarget = Glide.with(MainActivity.this)
.load(url)
.downloadOnly(Target.SIZE_ORIGINAL, Target.SIZE_ORIGINAL);
try {
File file = fileFutureTarget.get();
System.out.println(file+"路径");
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}).start();
当需要显示时,直接照常加载即可
需要注意的是,这里必须将硬盘缓存策略指定成DiskCacheStrategy.SOURCE或者DiskCacheStrategy.ALL,否则Glide将无法使用我们刚才下载好的图片缓存文件。
Glide.with(MainActivity.this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(img);
glide也有加载完成的监听,适合于需要把图片加载出来再进行的操作
Glide.with(CountDownActivity.this)
.load("http://i6.265g.com/images/201712/201712210138133238.gif")
.crossFade()
.into(new GlideDrawableImageViewTarget(adimg){
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> animation) {
super.onResourceReady(resource, animation);
//在这里进行你的操作
}
});
本文介绍如何使用Glide的预加载功能,在进入页面前预先加载和缓存图片,以减少页面加载时的空白时间。通过在子线程中调用特定方法,可以实现图片的提前下载,确保在需要时快速显示。同时,强调了正确的硬盘缓存策略对于使用已下载图片的重要性。

被折叠的 条评论
为什么被折叠?



