【雙語】Glide — 入門(Glide — Getting Started)

作者: weiyf
時間: 2016-10-31 10:32:31
原文鏈接:https://futurestud.io/tutorials/glide-getting-started

Glide, 就像Picasso一樣, 可以從多種來源加載和顯示圖片咧纠,而且也會去兼顧緩存和在做圖片處理的時候維持一個低內(nèi)存消耗的狀態(tài)蓬痒。這個庫已經(jīng)在Google官方app中使用(eg: Google I/O 2015),和Picasso一樣受歡迎漆羔。在這個系列中梧奢,我們準(zhǔn)備去探索Glide相對于Picasso之間的不同以及優(yōu)勢。

Glide, just like Picasso, can load and display images from many sources, while also taking care of caching and keeping a low memory impact when doing image manipulations. It has been used by official Google apps (like the app for Google I/O 2015) and is just as popular as Picasso. In this series, we're going to explore the differences and advantages of Glide over Picasso.

Glide系列提綱概況(Glide Series Overview):

  1. 【雙語】Glide — 入門(Glide — Getting Started)
  2. 【雙語】Glide — 高級加載(Glide — Advanced Loading)
  3. 【雙語】Glide — 列表適配器(ListView, GridView)(Glide — ListAdapter (ListView, GridView))
  4. Glide — Placeholders & Fade Animations
  5. Glide — Image Resizing & Scaling
  6. Glide — Displaying Gifs & Videos
  7. Glide — Caching Basics
  8. Glide — Request Priorities
  9. Glide — Thumbnails
  10. Glide — Callbacks: SimpleTarget and ViewTarget for Custom View Classes
  11. Glide — Loading Images into Notifications and AppWidgets
  12. Glide — Exceptions: Debugging and Error Handling
  13. Glide — Custom Transformations
  14. Glide — Custom Animations with animate()
  15. Glide — Integrating Networking Stacks
  16. Glide — Customize Glide with Modules
  17. Glide Module Example: Accepting Self-Signed HTTPS Certificates
  18. Glide Module Example: Optimizing By Loading Images In Custom Sizes
  19. Glide — Dynamically Use Model Loaders
  20. Glide — How to Rotate Images
  21. Glide — Series Roundup

為什么要使用Glide(Why Use Glide)?

有經(jīng)驗的Android開發(fā)者可以忽略本章節(jié)演痒,但是對于初學(xué)者來說:也許可能會問自己亲轨,為什么想要去用Glide,而不是自己去實現(xiàn)一個鸟顺。

Experienced Android developers can skip this section, but for the starters: you might ask yourself why you want to use Glide* instead of your own implementation.

Android 在處理圖像的時候顯得有點耍大牌惦蚊,因為他會以像素點的形式(pixel by pixel)加載到內(nèi)存之中。對于手機(jī)攝像頭來說平均一張普通的照片尺寸為2592x1936像素(5百萬像素)會分配19MB的內(nèi)存讯嫂。對于復(fù)雜的且參差不齊的網(wǎng)絡(luò)環(huán)境蹦锋,圖片緩存和圖片處理,如果你使用一個像Glide那樣開發(fā)和測試完善的庫欧芽,會省掉你好多時間和不會讓你頭痛莉掂。

Android is quite the diva when working with images, since it'll load images into the memory pixel by pixel. A single photo of an average phone camera with the dimensions of 2592x1936 pixels (5 megapixels) will allocate around 19 MB of memory. If you add the complexity of network requests on spotty wireless connections, caching and image manipulations, you will safe yourself a lot of time & headache, if you use a well-tested and developed library like Glide.

在這個系列中,我們看到了很多Glide特性千扔。只要看看這博客的文章提綱概要憎妙,然后想想你是否真的要自己去開發(fā)所有的這些功能。

In this series, we'll look at many of the features of Glide. Just take a peek at the blog post outline and think if you really want to develop all of these features yourself.

添加Glide到你的配置中(Adding Glide to Your Setup)

希望現(xiàn)在我們已經(jīng)說服你去使用這樣的一個庫來處理你的圖片加載請求昏鹃。如果你想要了解更多關(guān)于Glide尚氛,這就是你指南!

Hopefully by now we've convinced you to use a library to handle your image loading requests. If you want to take a look at Glide, this is the guide for you!

首先第一件事洞渤,添加Glide到你的依賴阅嘶,截至發(fā)稿時Glide的最新版本為3.7.0

First things first, add Glide to your dependencies. At the time of writing, the last version of Glide is 3.7.0.

Gradle

與大多數(shù)依賴一樣载迄,添加下面的一行在你的Gradle項目中的build.gradle

As with most dependencies, pulling it in a Gradle project is a single line in your build.gradle:

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

Maven

雖然現(xiàn)在我們的項目基本上都是基于Gralde竞端,但是Glide也支持Maven項目:

While we moved all our projects to Gradle, Glide also supports Maven projects:

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

初體驗: 從URL加載圖片(First Peek: Loading Image from a URL)

就像Picasso一樣,Glide庫是使用流接口( fluent interface)录语。Glide對于一個完成的請求癞尚,它的建造者最少需要三個參數(shù):

Just like Picasso, the Glide library is using a fluent interface. The Glide builder requires at least three parameters for a fully functional request:

  • with(Context context) - 對于很多Android API 來說,Context這個參數(shù)是必須的惋耙。當(dāng)然Glide也是一樣捣炬。
  • with(Context context) - Context is necessary for many Android API calls. Glide is no difference here. Glide makes this very convenient by also extracting the context if you pass an Activity or Fragment object.
  • load(String imageUrl) - 這里指定你哪張圖片 需要被加載熊昌。很多情況下,它會是一個網(wǎng)絡(luò)圖片的URL的字符串湿酸。
  • load(String imageUrl) - here you specify which image should be loaded. Mostly it'll be a String representing a URL to an Internet image.
  • into(ImageView targetImageView) - targetImageView是你的圖片該顯示的地方婿屹。
  • into(ImageView targetImageView) - the target ImageView your image is supposed to get displayed in.

紙上談兵總是難以掌握的,所以我們要看一個實際動手的例子:

Theoretical explanations are always harder to grasp, so let's look at a hands-on example:

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

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

是的推溃!如果你的圖片URL是存在并且可用的并且你的ImageView是處在顯示狀態(tài)的時候昂利,你將會在幾秒后看到你的圖片。以防圖片不存在铁坎,Glide會返回一個錯誤回調(diào)蜂奸,這個我們往后再看。你可能已經(jīng)被這三行Glid的代碼說服它是對你有用的硬萍,但還是它特性的冰山一角扩所。

That's it! If the image at the URL exists and your ImageView is visible, you'll see the image in a few seconds. In case the image does not exist, Glide will return to the error callbacks, which we'll look at later. You might already be convinced with this three-line example that Glide is useful to you, but this is just the tip of the feature iceberg.

展望(Outlook)

下一篇博客中,我們將會開始看看除了從網(wǎng)絡(luò)URL中加載的其他選項襟铭÷捣睿總的來說,我們將會從Android資源寒砖,本地文件赐劣,一個Uri加載一張圖片。

轉(zhuǎn)載請注明出處:http://weiyf.cn/2016/10/31/Glide-—-Getting-Started/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哩都,一起剝皮案震驚了整個濱河市魁兼,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漠嵌,老刑警劉巖咐汞,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異儒鹿,居然都是意外死亡化撕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進(jìn)店門约炎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來植阴,“玉大人,你說我怎么就攤上這事圾浅÷邮郑” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵狸捕,是天一觀的道長喷鸽。 經(jīng)常有香客問我,道長灸拍,這世上最難降的妖魔是什么做祝? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任砾省,我火速辦了婚禮,結(jié)果婚禮上混槐,老公的妹妹穿的比我還像新娘纯蛾。我一直安慰自己,他們只是感情好纵隔,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著炮姨,像睡著了一般捌刮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上舒岸,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天绅作,我揣著相機(jī)與錄音,去河邊找鬼蛾派。 笑死俄认,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的洪乍。 我是一名探鬼主播眯杏,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼壳澳!你這毒婦竟也來了岂贩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤巷波,失蹤者是張志新(化名)和其女友劉穎萎津,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抹镊,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡锉屈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了垮耳。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颈渊。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖氨菇,靈堂內(nèi)的尸體忽然破棺而出儡炼,到底是詐尸還是另有隱情,我是刑警寧澤查蓉,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布乌询,位于F島的核電站,受9級特大地震影響豌研,放射性物質(zhì)發(fā)生泄漏妹田。R本人自食惡果不足惜唬党,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鬼佣。 院中可真熱鬧驶拱,春花似錦、人聲如沸晶衷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晌纫。三九已至税迷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锹漱,已是汗流浹背箭养。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留哥牍,地道東北人毕泌。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像嗅辣,于是被迫代替她去往敵國和親撼泛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

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

  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的閱讀 13,433評論 5 6
  • 前年家里添了一枚萌寶,日子過得真快译暂,才兩年多的樣子抠忘,小寶寶現(xiàn)在已經(jīng)由一個抱在懷里一點點大的小娃娃,長成了一個會...
    啞藝閱讀 136評論 0 0
  • 為什么玫瑰有刺 為了讓癡人放手 為什么要有歷史 為了求索年月日的美 為什么海潮漲了又退 為了能夠說“重來” 為什么...
    陳先生后生閱讀 162評論 0 1
  • 理性人不考慮沉沒成本,不考慮過往的恩怨伯顶,只考慮邊際收益
    吾乃哲貓閱讀 189評論 0 0
  • 世界如此之大囚灼,我卻沒有一條活路,還能怎么辦呢祭衩?于是我決定跳樓灶体,而樓又是如此之高,我站在上面有種眩暈的感覺掐暮,還能怎么...
    半朽閱讀 874評論 29 46