Glide入門教程——1.入門簡介

Glide入門教程

原文:Getting Started & Simple Loading
作者:Norman Peitek
翻譯:Dexter0218

Glide和Picasso一樣,是一個(gè)優(yōu)秀的圖片加載工具庫。它可以支持多種圖片數(shù)據(jù)源,在對(duì)圖片加載并顯示時(shí),能較好的處理好緩存、保持較低的內(nèi)存占用。目前已經(jīng)被Google用于其官方應(yīng)用中。在這一系列教程中,我們將會(huì)通過學(xué)習(xí)Glide如何使用,探索Glide相對(duì)于Picasso的區(qū)別和改進(jìn)。

Glide 系列概覽

  1. 入門簡介
  2. 高級(jí)加載
  3. 適配器(ListView, GridView)
  4. 占位圖& 淡入淡出動(dòng)畫
  5. 圖片大小 & 縮放
  6. 播放GIF & 視頻
  7. 緩存基礎(chǔ)
  8. 請(qǐng)求優(yōu)先級(jí)
  9. 縮略圖
  10. 回調(diào):定制view中使用SimpleTarget和ViewTarget
  11. 通知欄和桌面小控件的圖片加載
  12. 異常: 調(diào)試和報(bào)錯(cuò)處理
  13. 自定義變換
  14. 用animate()定制動(dòng)畫
  15. 整合網(wǎng)絡(luò)協(xié)議棧
  16. 用Modules定制Glide
  17. Glide Module 案例: 接受自簽名HTTPS證書
  18. Glide Module 案例: 自定義緩存
  19. Glide Module 案例: 通過加載自定義大小圖片優(yōu)化
  20. 動(dòng)態(tài)使用 Model Loaders
  21. 如何旋轉(zhuǎn)圖片
  22. 系列綜述

為什么要使用Glide?

有Android開發(fā)經(jīng)驗(yàn)的程序員可以跳過這一節(jié),但是對(duì)于新手,應(yīng)當(dāng)弄明白為什么你要使用Glide*來代替你自己的實(shí)現(xiàn)。

Android在使用圖片的時(shí)候是相當(dāng)麻煩的,因?yàn)樾枰粋€(gè)像素一個(gè)像素地加載這些圖片到內(nèi)存。一個(gè)中端手機(jī)所拍攝的一張照片有2592×1936(5百萬)像素,這會(huì)占用大概19M內(nèi)存。如果你再加上各種好壞不一的網(wǎng)絡(luò)下的圖片請(qǐng)求,同時(shí)要處理緩存、圖片加載等問題,焦頭爛額。如果你這時(shí)候使用了一個(gè)像Glide一樣經(jīng)過不斷優(yōu)化和嚴(yán)格測試的圖片處理庫,你會(huì)慶幸你節(jié)省了大量的時(shí)間,同時(shí)也避免了很多頭疼的問題。

在這一系列教程中,我們會(huì)學(xué)習(xí)Glide的許多特性。先大概了解一下這篇列出的大綱,并想一下你是否真想要再實(shí)際開發(fā)中自己實(shí)現(xiàn)這些特性。

* —或者是其他的圖片處理庫,如 Picasso、 ION等等。

添加Glide到你的設(shè)置中

多么希望我們已經(jīng)成功說服你使用一個(gè)庫去處理你的圖片加載請(qǐng)求。如果你想要了解一下Glide,這個(gè)教程會(huì)對(duì)你有幫助!

首先,添加Glide到你的工程依賴?yán)铮刂贡疚膶懽鲿r(shí),最新的Glide版本是3.7.0.

Gradle

和大多數(shù)依賴庫一樣,在Gradle項(xiàng)目中只需要在build.gradle中添加一行:

compile 'com.github.bumptech.glide:glide:3.7.0'

Maven

Glide也支持 Maven項(xiàng)目:

<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>glide</artifactId>
<version>3.7.0</version>
<type>aar</type>
</dependency>

第一次嘗試:從一個(gè) URL加載圖片

和Picasso一樣,Glide使用一個(gè)流接口(Fluent Interface)。用Glide完成一個(gè)完整的圖片加載功能請(qǐng)求,需要向其構(gòu)造器中至少傳入3個(gè)參數(shù),分別是:

  • with(Context context)- Context是許多Android API需要調(diào)用的, Glide也不例外。這里Glide非常方便,你可以任意傳遞一個(gè)Activity或者Fragment對(duì)象,它都可以自動(dòng)提取出上下文。
  • load(String imageUrl) - 這里傳入的是你要加載的圖片的URL,大多數(shù)情況下這個(gè)String類型的變量會(huì)鏈接到一個(gè)網(wǎng)絡(luò)圖片。
  • into(ImageView targetImageView) - 將你所希望解析的圖片傳遞給所要顯示的ImageView。

理論上的解釋通常難以掌握,讓我們隨手舉個(gè)栗子:

ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
String internetUrl = "http://i.imgur.com/DvpvklR.png";

Glide
    .with(context)
    .load(internetUrl)
    .into(targetImageView);

就上面這幾行!如果這個(gè)URL鏈接的圖片的確存在,并且你的ImageView可見,你將會(huì)在1~2秒見到這張圖片被加載。假如這張圖片不存在,Glide會(huì)回調(diào)相應(yīng)的出錯(cuò)接口(這個(gè)以后再具體介紹)。 你可能已經(jīng)被這個(gè)3行代碼說服,覺得這個(gè)Glide的確對(duì)你有用。不過,現(xiàn)在你所見到的,只是Glide全部特性里的冰山一角而已。

展望

在下一篇文章中,我們將要研究除了從網(wǎng)絡(luò)URL加載圖片外的其他方式,如從Android資源文件、本地文件和Uri加載圖片。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容