Glide的二次封装

在开发过程中我们经常会使用到一些图片。开源的图片库有Glide,Picasso 等。本期就简单介绍下Glide开源库。

使用

第一步 compile ‘com.github.bumptech.glide:glide:4.5.0’ (引入依赖库)
第二步 Glide.with(context).load(Url).into(targetImageView);(展示)

我的博客

封装代码


public class GlideUtils {

    /**
     * 圆角图片加载
     * @param context 上下文
     * @param imageView 图片显示控件
     * @param url 图片链接
     * @param defaultImage 默认占位图片
     * @param errorImage 加载失败后图片
     * @param radius 图片圆角半径
     * @return
     */
    public static void load(Context context, ImageView imageView, String url, int defaultImage,
                            int errorImage , int radius){
        //RequestOptions 设置请求参数,通过apply方法设置
        RequestOptions options = new RequestOptions()
                // 但不保证所有图片都按序加载
                // 枚举Priority.IMMEDIATE,Priority.HIGH,Priority.NORMAL,Priority.LOW
                // 默认为Priority.NORMAL
                // 如果没设置fallback,model为空时将显示error的Drawable,
                // 如果error的Drawable也没设置,就显示placeholder的Drawable
                .priority(Priority.NORMAL) //指定加载的优先级,优先级越高越优先加载,
                .placeholder(defaultImage)
                .error(errorImage)
                // 缓存原始数据
                .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                .centerCrop()
                .transform(new CornersTranform(context, radius));
        // 图片加载库采用Glide框架
        Glide.with(context).load(url).apply(options)
                .transition(new DrawableTransitionOptions().crossFade())
                .into(imageView);

    }

    /**
     * 加载resoures下的文件
     * @param context
     * @param imageView
     * @param url
     * @param defaultImage
     * @param errorImage
     */
    public static void loadImgId(Context context, final ImageView imageView, int url, int defaultImage,
                                 int errorImage, int radius) {
        RequestOptions options = new RequestOptions()
                // 但不保证所有图片都按序加载
                // 枚举Priority.IMMEDIATE,Priority.HIGH,Priority.NORMAL,Priority.LOW
                // 默认为Priority.NORMAL
                // 如果没设置fallback,model为空时将显示error的Drawable,
                // 如果error的Drawable也没设置,就显示placeholder的Drawable
                .priority(Priority.NORMAL) //指定加载的优先级,优先级越高越优先加载,
                .placeholder(defaultImage)
                .error(errorImage)
                // 缓存原始数据
                .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                .centerCrop()
                .transform(new CornersTranform(context, radius));
        // 图片加载库采用Glide框架
        Glide.with(context).load(url)
                .apply(options)
                .transition(new DrawableTransitionOptions().crossFade())
                .into(imageView);
    }

    /**
     * 加载圆形头像
     * @param context
     * @param imageView
     * @param url

     */
    public static void loadCircle(Context context, final ImageView imageView, String url ) {
        RequestOptions options = new RequestOptions()
                // 但不保证所有图片都按序加载
                // 枚举Priority.IMMEDIATE,Priority.HIGH,Priority.NORMAL,Priority.LOW
                // 默认为Priority.NORMAL
                // 如果没设置fallback,model为空时将显示error的Drawable,
                // 如果error的Drawable也没设置,就显示placeholder的Drawable
                .priority(Priority.NORMAL) //指定加载的优先级,优先级越高越优先加载,
                .dontAnimate() //防止设置placeholder导致第一次不显示网络图片,只显示默认图片的问题
                .placeholder(R.drawable.toast_y)
                .error(R.drawable.toast_n)
                // 缓存原始数据
                .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                .centerCrop()
                .transform(new GlideCircleTransform(context));
        // 图片加载库采用Glide框架
        Glide.with(context).load(url)
                .apply(options)
                .transition(new DrawableTransitionOptions().crossFade())

                .into(new SimpleTarget<Drawable>() {
                    @Override
                    public void onResourceReady(Drawable resource, Transition<? super Drawable> transition) {
                        imageView.setImageDrawable(resource);
                    }
                });
    }
}

使用

GlideUtils.loadCircle(getActivity(), image,  "你的URL");
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值