Glide是一个Android图片加载库,由Goodle维护
相关文档
官方文档: https://github.com/bumptech/glide
20170104142219390.pngGradle
repositories {
mavenCentral() // jcenter() works as well because it pulls from Maven Central
}
dependencies {
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.android.support:support-v4:19.1.0'
}
一个极好的Glide教程翻译系列:http://mrfu.me/2016/02/27/Glide_Getting_Started/
为什么选择Glide
当前较为知名的几个图片加载库是Universal-Image_loader、Glide、Fresco、Picasso。
经过比较查询资料,得出以下结论 :
UIL的库2015年年底作者已经停止维护,so,如果是新开始的项目建议不要使用了
Gilde是Picasso的优化版,没有对比就没有伤害。so,Picasson pass。
最后就是Facebook的Fresco,听说极为强大和高效率,但是大小有4M。
最后Glide,google维护。Picasson的优化版,使用简单,也许没有Fresco那么强大,但是觉得完全可以hold住大部分项目。
综上所述,最终决定选择Glide作为项目开发图片加载库。使用的时候再自己封装一层util层,如果之后开发需要替换也较为方便。
如何使用
// For a simple view:
@Override public void onCreate(Bundle savedInstanceState) {
...
ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);
}
// For a simple image list:
@Override public View getView(int position, View recycled, ViewGroup container) {
final ImageView myImageView;
if (recycled == null) {
myImageView = (ImageView) inflater.inflate(R.layout.my_image_view, container, false);
} else {
myImageView = (ImageView) recycled;
}
String url = myUrls.get(position);
Glide
.with(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(myImageView);
return myImageView;
}
Glide 建造者要求最少有三个参数
with(Context context) - 对于很多 Android API 调用,Context 是必须的。Glide 在这里也一样
load(String imageUrl) - 这里你可以指定哪个图片应该被加载,同上它会是一个字符串的形式表示一个网络图片的 URL
into(ImageView targetImageView) 你的图片会显示到对应的 ImageView 中。
混淆处理
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}
-keepresourcexmlelements manifest/application/meta-data@value=GlideModule
除此之外,Glide还可以加载Gif,video。同时含有很多其他功能。详细可以在之前文档中查询。
网友评论