Glide与圆形图片CircleImageView的哪些坑

glide加载图片设置到circleimageview时,会出现只显示默认图片的问题,代码如下

Glide.with(context).load(BicDroidApiConstant.BASEURL + "/" + bean.getImagePath()).placeholder(R.drawable.defaultusericon_1).into(vh.userIcon);

去掉placeholder(R.drawable.defaultusericon_1)后可正常显示, vh.userIcon 是 circleimageview。

解决办法(使用glide本身的圆形图标加载方式):(注意,这里面的 vh.userIcon就是普通的imageview,不是circleimageview)

Glide.with(context).load(imgUrl).asBitmap().centerCrop().placeholder(R.drawable.defaultusericon_1).into(new BitmapImageViewTarget(vh.userIcon) {
                @Override
                protected void setResource(Bitmap resource) {
                    RoundedBitmapDrawable circularBitmapDrawable =
                            RoundedBitmapDrawableFactory.create(context.getResources(), resource);
                    circularBitmapDrawable.setCircular(true);
                    vh.userIcon.setImageDrawable(circularBitmapDrawable);
                }
            });

 使用glide设置圆形图标后,如果不设置缩放方式centerCrop(),会发现实际显示图片比默认图片要小,可能时由于glide缓存尺寸的问题。

在实际开发中的效果就是,设置placeholder(R.drawable.defaultusericon_1)后,从默认图标到原图显示有个过程,会发现切换为原图时图标变小了。

原文地址:https://www.cnblogs.com/epmouse/p/6762536.html