說一下Glide和Picasso的區(qū)別 以及Glide的使用

Glide和Picasso的區(qū)別

首先我們了解的設(shè)置圖片的方式有哪些呢候味?

ImageLoader
Glide尚胞,一個被google所推薦的圖片加載庫,常見的還有Picasso,F(xiàn)resco等,每一個都非常穩(wěn)定,功能也都十分強大。但是它們的使用場景基本都是重合的,也就是說我們基本只需要選擇其中一個來進行學習和使用就足夠了怜森,每一個框架都嘗試去掌握的話則有些浪費時間。最常用的是Glide和Picasso

如果你了解不是特別多的話建議可以了解一下 :常見的圖片加載框架

Picasso的使用

1.Picasso.with(this) .load(“http://nuuneoi.com/uploads/source/playstore/cover.jpg“) .into(ivImgPicasso);

2.Picasso.with(this) .load(“http://nuuneoi.com/uploads/source/playstore/cover.jpg“) .resize(768, 432) .into(ivImgPicasso);

3.Picasso.with(this) .load(“http://nuuneoi.com/uploads/source/playstore/cover.jpg“) .fit() .centerCrop() .into(ivImgPicasso);

這三種方法都可以加載圖片顯示到頁面上,

第一種:加載了全尺寸的圖片到內(nèi)存,然后讓GPU來實時重繪大小

第二種:你需要主動計算ImageView的大小肃弟,或者說你的ImageView大小是具體的值(而不是wrap_content)敌蜂,

第三種:按統(tǒng)一比例縮放圖片(保存圖片的尺寸比例)便于圖片的二維(寬度和高度)等于或者大于相應(yīng)的視圖的維度,這種方法和Glide加載圖片占用的內(nèi)存幾乎是相同的芳绩,雖然內(nèi)存開銷差距不大,但是在這個問題上Glide完勝Picasso撞反。因為Glide可以自動計算出任意情況下的ImageView的大小妥色。

Glide的使用

Glide.with(this) .load("圖片的URL") .into(ivImgGlide);

load方法中不僅可以傳入圖片地址,還可以傳入圖片文件File遏片,resource嘹害,圖片的byte數(shù)組等

// 加載本地圖片
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(imageView);
 
// 加載應(yīng)用資源
int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);
 
// 加載二進制流
byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);
 
// 加載Uri對象
Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);

占位圖
Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .into(imageView);

Glide 使用加載動畫和禁止動畫
glide默認有淡入淡出動畫.crossFade()也可以不加,
也有重載.crossFade(int duration),主要設(shè)置動畫進行快慢吮便,默認是300毫秒
Glide
    .with(context)
    .load(UsageExampleListViewAdapter.eatFoodyImages[0])
    .placeholder(R.mipmap.ic_launcher) 
    .error(R.mipmap.future_studio_launcher)
    .crossFade()
    .into(imageViewFade);

設(shè)置圖片大小
.override(300, 200);   //設(shè)置加載圖片尺寸大小
縮略圖
    縮略圖不同于前面提到的占位圖笔呀。占位圖應(yīng)當是跟app綁定在一起的資源。
    縮略圖是一個動態(tài)的占位圖髓需,可以從網(wǎng)絡(luò)加載许师。
    縮略圖也會被先加載,直到實際圖片請求加載完畢僚匆。
    如果因為某些原因微渠,縮略圖獲得的時間晚于原始圖片,它并不會替代原始圖片咧擂,而    
    是簡單地被忽略掉逞盆。

.thumbnail( 0.1f )里面的參數(shù)是一個浮點乘法運算

這個方法是啥意思呢?
例如松申,傳遞一個0.1f作為參數(shù)云芦,Glide會加載原始圖片大小的10%的圖片俯逾。

原始圖片---->1000x1000像素,
則縮略圖---->100x100像素焕数。

由于圖片將會比ImageView小纱昧,你需要確保縮放類型是否正確堡赔。

緩存
我們都知道Glide是自帶緩存的识脆,所有的圖片請求都會被緩存在內(nèi)存和磁盤上。
大多數(shù)情況下善已,緩存是一個非常有用的東西灼捂,但在一些特殊的情況下并不是很明智。

禁止內(nèi)存存儲:
.skipMemoryCache( true )

禁止磁盤存儲:
.diskCacheStrategy( DiskCacheStrategy.NONE )

.diskCacheStrategy()中枚舉參數(shù)以及意義:

DiskCacheStrategy.NONE 啥也不緩存
DiskCacheStrategy.SOURCE 只緩存全尺寸圖.
DiskCacheStrategy.RESULT 只緩存最終降低分辨后用到的圖片
DiskCacheStrategy.ALL 緩存所有類型的圖片 (默認)

Glide與Picasso的區(qū)別:

1换团、內(nèi)存:

        加載同一張圖片Picasso悉稠,Picasso的內(nèi)存開銷仍然遠大于Glide。

2艘包、Image質(zhì)量的細節(jié):

        Glide默認的是Bitmap格式是RGB-565

        Picasso默認ARGB_8888格式

       Glide加載的圖片沒有Picasso那么平滑的猛,但是很難察覺

3、磁盤緩存:

Picasso緩存的是全尺寸的想虎。
而Glide緩存的跟ImageView尺寸相同
將ImageView調(diào)整成不同大小不管大小如何設(shè)置卦尊。Picasso只緩存一個全尺寸的。Glide則不同舌厨,它會為每種大小的ImageView緩存一次

讓Glide既緩存全尺寸又緩存其他尺寸的方法:

Glide.with(this) .load(“http://nuuneoi.com/uploads/source/playstore/cover.jpg“) .diskCacheStrategy(DiskCacheStrategy.ALL) .into(ivImgGlide);

Glide的這種方式優(yōu)點是加載顯示非称袢矗快。而Picasso的方式則因為需要在顯示之前重新調(diào)整大小而導致一些延遲裙椭,Glide比Picasso快躏哩,雖然需要更大的空間來緩存。

4揉燃、Gif動圖

        Glide可以加載Gif動圖扫尺,Picasso不可以加載動圖

        Glide動畫會消耗太多的內(nèi)存,因此使用時謹慎使用

總結(jié)一下他們之間的區(qū)別:

(1)Glide比Picasso加載速度快炊汤,但Glide比Picasso需要更大的空間來緩存正驻;
(2)Glide加載圖像及磁盤緩存的方式都優(yōu)于Picasso,且Glide更有利于減少OutOfMemoryError的發(fā)生婿崭;
(3)Glide可以加載Gif動圖,Picasso不可以加載動圖
(4)編碼格式不同
(5)Picasso加載的圖片比Glide加載的圖片平滑(可忽略不計)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末肴颊,一起剝皮案震驚了整個濱河市氓栈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌婿着,老刑警劉巖授瘦,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件醋界,死亡現(xiàn)場離奇詭異,居然都是意外死亡提完,警方通過查閱死者的電腦和手機形纺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來徒欣,“玉大人逐样,你說我怎么就攤上這事〈蚋危” “怎么了脂新?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長粗梭。 經(jīng)常有香客問我争便,道長,這世上最難降的妖魔是什么断医? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任滞乙,我火速辦了婚禮,結(jié)果婚禮上鉴嗤,老公的妹妹穿的比我還像新娘斩启。我一直安慰自己,他們只是感情好躬窜,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布浇垦。 她就那樣靜靜地躺著,像睡著了一般荣挨。 火紅的嫁衣襯著肌膚如雪男韧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天默垄,我揣著相機與錄音此虑,去河邊找鬼。 笑死口锭,一個胖子當著我的面吹牛朦前,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鹃操,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼韭寸,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了荆隘?” 一聲冷哼從身側(cè)響起恩伺,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椰拒,沒想到半個月后晶渠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凰荚,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年褒脯,在試婚紗的時候發(fā)現(xiàn)自己被綠了便瑟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡番川,死狀恐怖到涂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情爽彤,我是刑警寧澤养盗,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站适篙,受9級特大地震影響往核,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜嚷节,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一聂儒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧硫痰,春花似錦衩婚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缓屠,卻和暖如春奇昙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背敌完。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工储耐, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人滨溉。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓什湘,卻偏偏與公主長得像,于是被迫代替她去往敵國和親晦攒。 傳聞我的和親對象是個殘疾皇子闽撤,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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