本来新app第一版很小,为了精简用了Picasso,一直用着也没什么问题。不知为何,某张网络图片死活加载不出来,没办法打算下一版换Glide,但是又出现新问题,这里总结一下:
(1)设置tag报错。
这个是可以绕过的:
Glide.with(getActivity())
.load(imgUrls.get(i))
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.placeholder(R.drawable.place)
.into(imageView);
imageView.setTag(i);
先设置tag,再用Glide就可以骗过glide了。
(2)白色背景图变得有点绿
添加一个类:
public class GlideConfiguration implements GlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) {
builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
}
@Override
public void registerComponents(Context context, Glide glide) {
}
}
<meta-data
android:name="com.xx.xxx.GlideConfiguration"
android:value="GlideModule"/>
这时候就好想吐槽,Glide方便的地方不就是默认RGB_565吗,额,泪奔,Picasso没这个问题。如果不是Picasso莫名加载不了才不用Glide,安装包大了0.12MB。
列表的图片没什么太大关系,关键是像头像这种固定单张图片,会有问题,所以这种就别设缓存了。
另外可以对于不会经常改变的图片加个缓存:
Glide.with(getActivity())
.load(imgUrls.get(i))
//这一句是缓存
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.placeholder(R.drawable.place)
.into(imageView);