图片加载框架Glide使用详解

本文详细介绍了Glide图片加载框架的使用,包括打印错误日志与调试、替换默认HttpClient为OkHttp、调整缓存策略、加载动画的应用、指定图片大小、非ImageView类型加载以及请求优先级设置等关键点。通过对Glide的深入理解和实践,解决了图片加载失败的问题,并揭示了其强大的功能和灵活性。
摘要由CSDN通过智能技术生成

最终我还是决定使用Glide,作为我以后的主要图片加载框架。主要基于三点考虑

  1. 代码有人维护,不至于出现问题,项目组都搞不定的时候问题无法解决。(ImageLoader已没人维护了)
  2. 代码简洁,可读性很好。(Fresco是一个非常优秀的库,但是配置稍显麻烦,同时代码风格读起来有些生疏)
  3. 功能强大(400多k的包,包含很多功能,例如:像加载Gif图片就是Picasso做不到的)
    但是,首要解决的就是,在Blog中提到的,图片常常加载失败。

打印错误日志与调试

这里写图片描述
我们看到仅仅是显示一张错误的图片,但是为什么会这样,日志里面没有任何输出。
监听器配置

        Glide.with(getContext())
                .load(url)
                .listener(mRequestListener)//配置监听器
                .placeholder(Drawables.sPlaceholderDrawable)
                .error(Drawables.sErrorDrawable)
                .into(mImageView);

打印日志

    private RequestListener<String, GlideDrawable> mRequestListener = new RequestListener<String, GlideDrawable>() {
        @Override
        public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
            //显示错误信息
            Log.w(TAG, "onException: ", e);
            //打印请求URL
            Log.d(TAG, "onException: " + model);
            //打印请求是否还在进行
            Log.d(TAG, "onException: " + target.getRequest().isRunning());
            return false;
        }

        @Override
        public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
            return false;
        }
    };

这里的onException捕获异常,如果返回true表示我们自己处理掉了异常,false表示交给Glide去处理,因为我们定义了.error()那么就显示error里面的内容。
这里onResourceReady表示是否准备资源显示,返回true表示用户自己已经设置好资源,包括截取操作,动画操作之类的,准备好显示。false表示交给Glide


如此修改后,看到日志终于打印出来了。查看日志,发现Glide本身自带的网络栈,在网络环境比较差的情况下(只是差,使用其他框架图片可以比较慢的显示出来)

/com.example.imageloadpk W/GlideHolder: onException:
        java.lang.RuntimeException
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值