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)后,从默认图标到原图显示有个过程,会发现切换为原图时图标变小了。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM