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