超级简单的图片加载框架Glide(献给新手)

详细各位初学者都可能听说过Glide或者已经对其有过一些了解了,下面我主要讲解它的简单使用:

引入

compile 'com.github.bumptech.glide:glide:3.7.0'

权限

<uses-permission android:name="android.permission.INTERNET" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

使用:

//设置图片
Glide.with(context)//使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制.使用Activity作为上下文,Glide的请求会受到Activity生命周期控制.fragment同理
        .load(path)//Glide基本可以load任何可以拿到的媒体资源

        // DiskCacheStrategy.SOURCE:缓存原始数据
        // DiskCacheStrategy.RESULT:缓存变换(如缩放、裁剪等)后的资源数据
        // DiskCacheStrategy.NONE:什么都不缓存
        // DiskCacheStrategy.ALL:缓存SOURCE和RESULT
        // 默认采用DiskCacheStrategy.RESULT策略
        // 对于download only操作要使用DiskCacheStrategy.SOURCE
        .diskCacheStrategy(DiskCacheStrategy.ALL)//设置缓存策略

        // 优先级越高越优先加载,但不保证所有图片都按序加载
        // 枚举Priority.IMMEDIATE
        // Priority.HIGH
        // Priority.NORMAL
        // Priority.LOW
        // 默认为Priority.NORMAL
        .priority(Priority.HIGH)//指定加载的优先级
        .dontAnimate()// 移除所有的动画
        //.animate(int animationId)//在异步加载资源完成时会执行该动画
        .placeholder(R.drawable.btn_bg1)//设置资源加载过程中的占位Drawable
        .error(R.drawable.btn_bg1)//设置load失败时显示的Drawable

        // 监听资源加载的请求状态
        //但不要每次请求都使用新的监听器,要避免不必要的内存申请,可以使用单例进行统一的异常监听和处理。
        .listener(new RequestListener<String, GlideDrawable>() {
            //当负载出现异常时调用
            @Override
            public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
                return false;
            }

            //当负载成功完成时,立即调用
            @Override
            public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
                return false;
            }
        })
        //设置是否跳过内存缓存  但不保证一定不被缓存
        //.skipMemoryCache(boolean skip)
        //重新设置目标的宽高值
        .override(200, 400)
        //设置资源将被加载到的目标
        .into(holder.img);
// 清除内存缓存
// 必须在UI线程中调用
Glide.get(context).clearMemory();
// 清除磁盘缓存
// 必须在后台线程中调用,建议同时clearMemory()
Glide.get(context).clearDiskCache();

图片处理库

compile 'jp.wasabeef:glide-transformations:2.0.0'

使用这个库可以对图片进行一些 裁剪、模糊、滤镜等处理

简单举例:

//圆形裁剪
Glide.with(context)
        .load(path)
        .bitmapTransform(new CropCircleTransformation(context))
        .into(holder.img);
//圆角处理
Glide.with(context)
        .load(path)
        .bitmapTransform(new RoundedCornersTransformation(context, 30, 0, RoundedCornersTransformation.CornerType.ALL))
        .into(holder.img);
//灰度处理
Glide.with(context)
        .load(path)
        .bitmapTransform(new GrayscaleTransformation(context))
        .into(holder.img);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值