Glide的一些方法(对项目开发很有帮助)

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);

                //在这里进行你的操作
            }
        });

猜你喜欢

转载自blog.csdn.net/ZhangXuxiaoqingnian/article/details/82462333