在使用Glide加载图片的时候不知道你有没有遇到过第一次加载图片总是失败,试个10次有7,8次失败,通过日志能看到以下问题:
这种问题明显看出来是加载超时,那么为什么会出现这种问题呢,为什么项目中其他地方的图片加载没问题呢,第一直觉是图片地址问题,换了另外一个图片地址果然解决了,但是很多项目中图片地址都是更换不了的,那么总结一下我所试过的解决方法:
1:使用okhttp或volley作为网络栈
这种方法是网上最常见的解决方法,既:在gradle文件中增加一下代码
compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
@aar会将meta data数据自动导入androidmanifest,如果你的没有自动导入需要手动在AndroidManifest.xml文件中增加以下代码:
<meta-data
android:name="com.bumptech.glide.integration.okhttp.OkHttpGlideModule"
android:value="GlideModule" />
如果你的项目增加了混淆还需要在proguard文件增加混淆配置:
-keep class com.bumptech.glide.integration.okhttp3.OkHttpGlideModule
这样所有的配置就完成了,你可以运行下有没有解决你的图片加载问题!如果方法没有解决那么来看第二种方法。
2:使用AsyncTask
这种方法只适合整个项目其他位置的图片都没问题,就只有极个别的图片有问题的时候可以临时解决一下,直接上代码:
class MyTask extends AsyncTask<String, Integer, Bitmap> {