Glide使用心得——加载图片出现浅绿色背景问题和Glide加载完成的监听设置

目前来说做Android开发,就图片加载框架来说,主流的都有Picasso、Glide、Fresco、Universal-Image-Loader等。

介绍:

Picasso:主要是将网络缓存那块交给OkHttp来处理,全尺寸缓存(只缓存一种)

Glide:缓存的是跟ImageView尺寸相同的(即56*56和128*128是两个缓存)

Fresco:将图片放到Ashmem区,图片不显示时内存占用自动释放,APP更加流畅

Universal-Image-Loader:很好地解决了图片错乱,OOM等问题

今天主要来说一下在开发中使用Glide的两个小问题:

1.使用Glide加载图片的时候会出现浅绿色的背景,一般图片还好,看不太明显,但是对于无背景图片的话就显得特别扎眼。有两种解决方案:

其一:Glide.with(context).load(url)
           .diskCacheStrategy(DiskCacheStrategy.SOURCE)//是将图片原尺寸缓存到本地
           .into(imageview);

其二:如果加上这一句代码图片仍然没有解决,可以将Bitmap的格式改为ARGB_8888
           首先创建一个 GlideConfiguration类去实现GlideModule,修改Bitmap的格式
           publicclassGlideConfigurationimplementsGlideModule{ 
        @Override

publicvoidapplyOptions(Context context, GlideBuilder builder) {                    

 builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888); 
           
              @Override

      publicvoidregisterComponents(Context context, Glide glide) { } 
         }
   然后在AndroidManifest.xml中加入:
           <meta-data android:name="你的包名.GlideConfiguration" android:value="GlideModule"/>

2.设置Glide加载完成监听

baseGlide(object, url).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE).placeholder(defID).error(errID)

.into(new GlideDrawableImageViewTarget(imageview) {
    @Override
    public void onResourceReady(GlideDrawable drawable, GlideAnimation anim) {
        super.onResourceReady(drawable, anim);
        //图片加载完成的操作
    }

    @Override
    public void onLoadFailed(Exception e, Drawable errorDrawable) {
        super.onLoadFailed(e, errorDrawable);
        //图片加载失败的操作
    }
}
);

Glide中还有很多很好用的功能,这次就先提及这两个,希望对大家能有所帮助。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值