- 原文鏈接: Getting Started & Simple Loading
- 原文作者: Future Studio
- 譯文出自: 小鄧子的簡(jiǎn)書
- 譯者: 小鄧子
- 狀態(tài): 完成
為什么使用Picasso仔戈?
有經(jīng)驗(yàn)的Android開發(fā)者可以跳過這段关串,而對(duì)于初學(xué)者來說:你一定會(huì)問,為什么要使用Picasso來替換目前已有的圖像加載方案监徘。
圖像處理在Android中應(yīng)當(dāng)是非常謹(jǐn)慎的晋修,因?yàn)樗鼤?huì)把圖片一個(gè)像素接一個(gè)像素的加載到內(nèi)存中。平均來看凰盔,一個(gè)手機(jī)相機(jī)所拍出來的照片尺寸為2592 x1936像素(5百萬(wàn)像素)墓卦,將被分配大約19M的內(nèi)存(譯者注:原文在這里計(jì)算稍有誤差:<)。如果你使用一個(gè)經(jīng)過良好測(cè)試的類庫(kù)户敬,如Picasso落剪,那么在復(fù)雜的網(wǎng)絡(luò)連接睁本,緩存以及圖片處理等操作上,將會(huì)節(jié)省很多時(shí)間忠怖,而且也不必為其感到頭疼呢堰。
在這一系列中,我們將關(guān)注Picasso的一些特性凡泣。當(dāng)你決定真的需要實(shí)現(xiàn)這些所有特性之前枉疼,最好先通讀一下博客的匯總大綱。
或者了解一下其他圖像加載類庫(kù)鞋拟,如Glide骂维,ION等等
添加Picasso
希望截至目前為止,我們已經(jīng)肯定你使用過一種類庫(kù)來處理圖像的加載贺纲。如果你愿意嘗試Picasso航闺,這篇指導(dǎo)簡(jiǎn)直不能更適合你了。
先說重要的哮笆,添加Picasso到你的依賴列表来颤,當(dāng)我寫真片文章的時(shí)候,Picasso的最新版本是2.5.2
稠肘。
Gradle
與眾多依賴規(guī)則一樣福铅,只需要在你的build.gradle
文件中添加簡(jiǎn)單的一行。
compile 'com.squareup.picasso:picasso:2.5.2'
Maven
雖然我們已經(jīng)把項(xiàng)目遷移到了Gradle项阴,但是Picasso同樣支持Maven項(xiàng)目滑黔。
<dependency>
<groupId>com.squareup.picasso</groupId>
<artifactId>picasso</artifactId>
<version>2.5.2</version>
</dependency>
從一個(gè)URL地址加載圖片
Picasso使用了流式接口的調(diào)用方式,Picasso類是核心實(shí)現(xiàn)類环揽。至少需要三個(gè)參數(shù)才能實(shí)現(xiàn)一個(gè)完整的請(qǐng)求略荡。
with(Context context)
- Context對(duì)于很多Android API的調(diào)用都是必須的,同樣Picasso也不例外歉胶。load(String imageUrl)
- 在這里汛兜,你應(yīng)該添加將被加載圖像的地址。大多情況下通今,一個(gè)字符串代表一個(gè)網(wǎng)絡(luò)圖片的URL粥谬。into(ImageView targetImageView)
- 這個(gè)目標(biāo)ImageView就是圖片最終要展示的地方。
ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
String internetUrl = "http://i.imgur.com/DvpvklR.png";
Picasso
.with(context)
.load(internetUrl)
.into(targetImageView);
就是這樣辫塌!如果你的URL地址可用漏策,并且ImageView
是可見的,很快就能看到圖片了臼氨。如果要加載的圖片不存在掺喻,Picasso將會(huì)返回錯(cuò)誤的回調(diào),關(guān)于這個(gè),我們將稍后介紹感耙。通過這三行代碼示例褂乍,你可能已經(jīng)相信Picasso是值得一試的,但這只是其眾多特性的冰山一角即硼。