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

本文介绍如何使用Glide的预加载功能,在进入页面前预先加载和缓存图片,以减少页面加载时的空白时间。通过在子线程中调用特定方法,可以实现图片的提前下载,确保在需要时快速显示。同时,强调了正确的硬盘缓存策略对于使用已下载图片的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

                //在这里进行你的操作
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值