库的使用之Glide

库的使用之Glide

问题

主要解决图片加载问题。

  1. 图片占用内存回收及时,能减少因内存不足造成的崩溃,生命周期和Activity/Fragment一致。
  2. 默认Bitmap格式是RGB_565,减少内存资源占用。
  3. 支持圆形图片、圆角图片、高斯模糊等效果

使用

  1. 引用
implementation 'com.github.bumptech.glide:glide:4.15.1'
// 提供 高斯模糊,如果不需要可以不用依赖
implementation 'jp.wasabeef:glide-transformations:4.3.0'
// Glide注解依赖
annotationProcessor 'com.github.bumptech.glide:compiler:4.15.1'
  1. 基本使用
 MultiTransformation multiTransformation = new MultiTransformation(new BlurTransformation(60));
Glide.with(context)
   .load("http://png.test.com/a.png")//图片地址 网络地图/文件地址/资源ID
   .centerCrop()//会缩放图片让图片充满整个ImageView的边框,然后裁掉超出的部分,
   //ImageVIew会被完全填充满,但是图片可能不能完全显示出。
   .fitCenter()//会缩放图片让两边都相等或小于ImageView的所需求的边框。
   //图片会被完整显示,可能不能完全填充整个ImageView。
   .placeholder(errorRes)//占位图
   .error(errorRes)//加载错误图
   .fallback(errorRes)// url为空的占位图
   .circleCrop()
   .dontAnimate()//取消动画
   .override(100,100)//加载图片尺寸,节省内存
   .transform(GenericTransitionOptions.with(R.anim.test))//设置自定义动画
   .transform(new CircleCrop())// 加载圆形图片
   .transform(new RoundedCorners(30))//加载圆角为30的图片
   .transform(new GranularRoundedCorners(30f,80f,80f,30f))//加载4个圆角不同的图片
   .transform(new Rotate(90))//旋转90度
   .diskCacheStrategy(DiskCacheStrategy.ALL)//设置缓存策略
   // DiskCacheStrategy.ALL 缓存所有类型的图片 (默认行为)
   // DiskCacheStrategy.NONE 什么也不缓存
   // DiskCacheStrategy.SOURCE 只缓存全尺寸图. 上面例子里的1000x1000像素的图片
   // DiskCacheStrategy.RESULT 只缓存最终降低分辨后用到的图片
   .apply(RequestOptions.bitmapTransform(multiTransformation))//高斯模糊
   .into(imageView);
  1. 全局配置
@GlideModule
public class MyAppModule extends AppGlideModule {
    @Override
    public void applyOptions(@NonNull Context context, @NonNull GlideBuilder builder) {
        super.applyOptions(context, builder);
    }
}

//定义一个频繁使用的选项集合
@GlideExtension
public class MyAppExtension {
    private MyAppExtension(){}
    @GlideOption
    public static BaseRequestOptions<?>defaultImg(BaseRequestOptions<?> options){
        return options.placeholder(R.drawable.placeholder)
                .error(R.drawable.error)
                .fallback(R.drawable.fallback);
    }
}

// 编译一下 就可以使用GlideApp
GlideApp.with(context).load(url).defaultImg().into(imageView);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多云转晴已存在

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值