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)后,從默認圖標到原圖顯示有個過程,會發現切換為原圖時圖標變小了。