天天看点

图片加载库Glide

原文地址:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html

在实验室的Q群上看到有唯品会的师兄推荐这个图片加载库,自己上网搜并试用过之后感觉非常喜欢,参见“泡在网上的日子”上一篇博文,谈谈自己的一些见解。以下内容大部分参加原文。

在android studio 上导入该库非常简单

dependencies {
    compile 'com.github.bumptech.glide:glide:3.5.2'
    compile 'com.android.support:support-v4:22.0.0'
}
           

官方推荐是导入上面两句,然而我的Gradle原本是v7的包,顾不导入v4并没有什么问题。

图片加载库Glide

如此就成功导入了。

接下来看下如何用这个库加载图片,和大家最为熟知的Universal-ImageLoader

不同,这个库的使用非常的简单。不需要配置Config之类的,直接在setImage的地方调用它就行。

如加载一张简单的ImageView:

Glide.with(mContext)
                .load("http:\\www.baidu.xxx.jpg")//uri
                .diskCacheStrategy(DiskCacheStrategy.ALL)//缓存全尺寸
                .into(mImage);//图片控件
           

如果在ListView里面呢也是大同小异啦,

Glide.with(mContext)
                .load(datas.get(position))//uri
                .fit()
                .centerCrop()
                .diskCacheStrategy(DiskCacheStrategy.ALL) //缓存全尺寸
                .into(holder.mImage);//图片控件
           

在上面的原文链接中介绍了Glide对比于Picasso的优异之处,总结有以下几个:

1. Glide除了能够加载图片之外还能加载gif动画picasso则只能把gif图加载成静态图片,Glide还能将本地视频解码成一张静态图片,这点picasso就没有;

2. Glide最为吸引我的地方就是它的内存控制,图片默认质量为RGB-565,Picasso的图片默认质量为RGB-8888;(565所占用的内存是8888的一半而已)。当然也就是说,Picasso加载出来的图片质量要高于Glide,但Glide却能大幅度减低OOM的发生概率。

3. 从缓存中加载图片的速度,Picasso从缓存中加载图片的速度没有Glide的迅速,这一点是因为Picasso图片缓存本身就是以最大尺寸(统一尺寸)进行缓存,当ImageView大小有变化时,缓存加载图片时它要先将图片调整为适应大小后才进行加载;而Glide图片缓存是根据ImageView的大小进行缓存的,加载缓存中图片时,全尺寸的图片将从缓存中取出,重新调整大小,然后缓存。

.diskCacheStrategy(DiskCacheStrategy.ALL)//缓存全尺寸
           

上面提到的Picasso我没有使用过,后期研究后再写一篇这种图片缓存的小结。

继续阅读