前提
项目中使用Glide,MAT分析发现有的Bitmap长宽都很大,不用说肯定加载了原始图片,如果使用SimpleTarget的话一般需要指定大小,不然的话就是使用原始大小
Glide.load("http://somefakeurl.com/fakeImage.jpeg")
.asBitmap()
.withFitCenter()
.into(new SimpleTarget(250, 250) {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) {
// Do something with bitmap here.
}
});
}
后续
本来说这样解决就ok了,结果发现之所以用这个方法,是因为Glide有的时候图片加载不出来,然后某个同事就使用了这个方法(其实还是会显示不出来),注释里面还有个TODO,说需要完善一下。。。
最后定位到ViewTarget中isViewStateValid
方法中 view.isLaidOut()
一直返回false
RecyclerView中item复用导致图片加载不出来,定位到是Glide一个bug 1981,bug fix commit,该bug在4.0.0-RC1之后修复Glide版本更新记录 ,然后倒霉催的项目中就是使用4.0.0-RC1,升级Glide后图片不显示bug修复