Glide圖片加載庫

簡介

作為Glide是谷歌推薦的圖片加載庫,Glide有著 支持video,Gif,SVG格式,同時有著很好的生命周期管理,支持Volley,OkHttp,更好的內存管理策略等優點。
重用Listview的使用自動處理請求的取消。
正確加載圖片到對應的Imageview。
自動減少圖片尺寸,可以省時間,省內存。
Glide自己會做異步處理,所以加載的方法卸載UI 線程中。
Glide和Picasso非常相似,Glide加載圖片的方法和Picasso如出一轍。各自有各自的優點,使用時候主要是看需求。想知道他們有哪些區別可以看Google推薦的圖片加載庫Glide介紹

Glide使用總結

1.加載網絡圖片
imageView = (ImageView) findViewById( R.id.image );
String url = "http://img5.jpg" ;
Glide.with( this ).load( url ).into( imageView ) ; 

. Glide.with() 作為生命周期控制,可以有一下參數:

with(Context context). 使用Application上下文,Glide請求將不受Activity/Fragment生命周期控制。
with(Activity activity). 使用Activity作為上下文,Glide的請求會受到Activity生命周期控制。
with(FragmentActivity activity).Glide的請求會受到FragmentActivity生命周期控制。
with(android.app.Fragment fragment).Glide的請求會受到Fragment 生命周期控制。
with(android.support.v4.app.Fragment fragment).Glide的請求會受到Fragment生命周期控制。

load可以接受一下參數:

605655-20160607154427996-1293585156.png

into很好理解 就是放進指定的ImageView中去。

2.優先級加載設置 priority()
Glide.with( this).load( url2).priority(Priority.LOW ).into( imageView2 ) ;
Glide.with( this).load( url3).priority(Priority.HIGH ).into( imageView3 ) ;

有這幾種優先級,Priority.LOW、Priority. NORMAL、 Priority.HIGH、Priority.IMMEDIATE

但是這里的優先級只是在加載的過程中起一個參考作用, 并不決定真正的加載順序。因為還受網絡情況的影響。

3.縮略圖的支持

1) 先加載原圖的十分之一大小的縮略圖,然后再加載原圖

Glide.with( thi ).load( url ).thumbnail(0.1f).into( imageview ) ;

2) 用本地的圖片作為縮略圖,然后再加載原圖

DrawableRequestBuilder<Integer> thumbnailRequest = Glide
        .with(context)
        .load(R.drawable.image_example);
Glide.with(context)
        .load(url)
        .thumbnail(thumbnailRequest)
        .into(view);
4.加載GIF圖
Glide.with( this ).load( url ).into( imageView1 ) ;
Glide.with( this ).load( url ).asGif().into( imageView2 ) ;

設置了asGif()后傳入的圖片必須是Gif不然會報錯,如果吧asGif換成asBitmap可則會顯示一張靜態圖。

5.加載本地視頻,相當于一張縮略圖
imageView = (ImageView) findViewById( R.id.image_video );
String files = Environment.getExternalStorageDirectory().getAbsolutePath() + "/yueyu.mkv" ;
Glide.with( this ).load( files ).into( imageView ) ;

1) 只能加載本地視頻,網絡視頻無法加載。
2) 加載本地視頻顯示只是視頻的第一幀圖像,相當于一張縮略圖。不能播放視頻。

6.加載動畫

.crossFade() 淡入淡出 , 也是默認動畫
.crossFade( int duration ) 定義淡入淡出的時間間隔
.dontAnimate() 不使用任何動畫

7.Glide緩存策略

Glide默認開啟磁盤緩存和內存緩存,當然也可以對單張圖片進行設置特定的緩存策略。
設置圖片不加入到內存緩存
.skipMemoryCache( true )
.diskCacheStrategy( DiskCacheStrategy.NONE )
Glide支持多種磁盤緩存策略:

DiskCacheStrategy.NONE :不緩存圖片
DiskCacheStrategy.SOURCE :緩存圖片源文件
DiskCacheStrategy.RESULT:緩存修改過的圖片
DiskCacheStrategy.ALL:緩存所有的圖片,默認

8.圖片的縮放

1)使用centerCrop是利用圖片圖填充ImageView設置的大小,如果ImageView的Height是match_parent則圖片就會被拉伸填充

Glide.with(context).load(imageUrl).centerCrop().into(imageView);

2)使用fitCenter即縮放圖像讓圖像都測量出來等于或小于 ImageView 的邊界范圍,該圖像將會完全顯示,但可能不會填滿整個ImageView。

Glide.with(context).load(imageUrl).fitCenter().into(imageView);

3)使用override(horizontalSize, verticalSize)
與Picasso相比,Glide在內存消耗上更高效、更智能。Glide會根據所剩的內存和ImageView的大小自動限制圖片的尺寸。Picasso也有相似的特性,但是它需要手動調用.fit(),對于Glide而言,如果某些圖片不應該被自動調整,那么執行override(horizontalSize, verticalSize),那么這個圖片會在顯示到ImageView之前被調整為需要的尺寸。

Glide.with(context).load(imageUrl).override(600, 200) .into(imageView);
//按照這個像素,調整圖片的尺寸,不保持長寬比例
8.占位圖placeHolder()方法
Glide.with(context).load(imageUrl)
.placeholder(R.mipmap.ic_launcher).into(imageView);
9.當加載圖片失敗時,通過該方法設置加載失敗后的圖片顯示
Glide.with(context).load(imageUrl).error(R.mipmap.ic_launcher).into(imageView);

10.Glide.with(context).resumeRequests()和 Glide.with(context).pauseRequests()

當列表在滑動的時候,調用pauseRequests()取消請求,滑動停止時,調用resumeRequests()恢復請求。這樣是不是會好些呢?

11.Glide.clear()

當你想清除掉所有的圖片加載請求時,這個方法可以幫助到你。

12.設置CircleImageVIew可以使用這個ImageView庫
參考文章 :Android圖片加載框架Glide用法里面有加載圓角圖片和圓形圖片的方法。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,488評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,034評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,327評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,554評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,337評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,883評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,975評論 3 439
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,114評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,625評論 1 332
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,555評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,737評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,244評論 5 355
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,973評論 3 345
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,362評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,615評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,343評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,699評論 2 370

推薦閱讀更多精彩內容