天天看點

圖檔加載庫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我沒有使用過,後期研究後再寫一篇這種圖檔緩存的小結。

繼續閱讀