加载网络图片时第一次加载死活加载不出来,头像控件使用的是CircleImageView,最后换成ImageView试验,发现没有问题,这就找出问题所在了,就是CircleImageView这个控件和Glide之间的关系了。
查找相关资料后,找出问题所在以及解决方案如下:
1、使用Glide默认没有圆角转换的功能,需要使用自定义Transformation,但无法实现placeholder图片的圆角转换,但是圆角图片,使用CircleImageView,虽然CircleImageView继承ImageView,不能使用scaleType参数,否则报InflateException。CircleImageView 源码主动抛出的异常。
2、问题出现的原因就是使用自定义ImageView,如CircleImageView,通过Glide加载网络图片,且设置了占位符,如placeholder或error,则第一次不显示网络图片
3、解决办法有两种,一种是不使用占位符,另外一种则是不使用默认动画。
public static void glide(Activity activity, String imageUrl, ImageView imageView) {
Glide.with(activity)
.load(imageUrl)
.dontAnimate()
.placeholder(R.mipmap.zhan_course_new)
.error(R.mipmap.zhan_course_new)
.diskCacheStrategy(ALL)
.into(imageView);
}
public static void glide(Activity activity, String imageUrl, ImageView imageView) {
Glide.with(activity)
.load(imageUrl)
.error(R.mipmap.zhan_course_new)
.diskCacheStrategy(ALL)
.into(imageView);
}