glide
Google推薦的圖片加載庫,專注於流暢的滾動。
1.優點
1)使用RGB_565,內存佔用比Picasso小一半。
2)圖片展示和頁面的生命週期一致(對context有類型要求)
3)相比Picasso,Glide在緩存策略和加載GIF方面略勝一籌
減少了緩存文件的大小
Picasso和Glide在磁盤緩存策略上有很大的不同。Picasso緩存的是全尺寸的,而Glide緩存的是跟ImageView尺寸相同的。 這樣在下次顯示的時候不需要重新調整大小,顯示的會更快。
4)在頁面不可見時停止網絡請求,停止對圖片的解析操作。
5)專注於流暢的滾動
6)當列表在滑動的時候,調用pauseRequests()取消請求,滑動停止時,調用resumeRequests()恢復請求。這樣是不是會好些呢?
7)支持當你想清除掉所有的圖片加載請求時
8)同時因爲Glide和Activity/Fragment的生命週期是一致的,因此gif的動畫也會自動的隨着Activity/Fragment的狀態暫停、重放。Glide 的緩存在gif這裏也是一樣,調整大小然後緩存。
9)支持gif
但是從我的一次測試結果來看Glide 動畫會消費太多的內存,因此謹慎使用。
10)Glide還可以將任何的本地視頻解碼成一張靜態圖片。
11)使用glide,你可以配置圖片顯示的動畫,而Picasso只有一種動畫:fading in。
12)可以使用thumbnail()產生一個你所加載圖片的thumbnail。
2.缺點
1)Glide 功能強大,但代碼量大、流轉複雜。在較深掌握的情況下才推薦使用,免得出了問題難以下手解決。
3.性能分析
比Picasso性能好一些。
4.風險(包大小等)
包大小:1.3mb
能否解決listview圖片錯位問題?可以
glide框架:點擊打開鏈接
Picasso
1.優點
1)picasso能夠根據網絡狀態調整線程池的併發數量
2)使用簡單,源碼簡單易懂。Picasso 代碼雖然只在一個包下,沒有嚴格的包區分,但代碼簡單、邏輯清晰
3)內部維護了一個監控類,能夠實時反饋內存緩存的命中率,使用狀態等等。
2.缺點
1)ARGB_8888
2)Picasso的方式則因爲需要在顯示之前重新調整大小而導致一些延遲,Glide加載顯示更快。
3.性能分析
4.風險(包大小等)
包大小:1.2mb
能否解決listview圖片錯位問題?
Picasa框架:點擊打開鏈接
fresco
Facebook出的,不是一般的強大。
1.優點
1)使用了Native緩存(5.0以下,不包括5.0)
2)支持模糊漸進形式展示圖片(類似webView)
3)能夠根據View的展示狀態控制網絡請求和圖片解析的狀態(在頁面不可見時停止對圖片的網絡請求和解析操作,在頁面可見時恢復操作)
4)對多幀動畫圖片支持更好(未測試)
5)對外提供清除緩存的方法
2.缺點
1)ARGB_8888
2)體積較大,集成後增大apk體積
3)需要使用特定的view,需要xml支持
3.性能分析
4.風險(包大小等)
包大小:4mb
能否解決listview圖片錯位問題?
fresco框架:點擊打開鏈接
volley imageloader
1.優點
2.缺點
Google官方出品,可惜不能加載本地圖片~
3.性能分析
4.風險(包大小等)
Universal Image Loader
1.優點:這個應該是我們用的最多的圖片加載框架了,但是並不支持動態圖片的加載,比較好用
2.缺點
一個強大的圖片加載庫,包含各種各樣的配置,最老牌,使用也最廣泛。
3.性能分析
4.風險(包大小等)
綜述
都能處理多種來源的圖片,網絡圖片,本地圖片,assets圖片,都維護了內部的LruCache,Threadpool。
glide明顯優於Picasso,但是glide和fresco之間的優劣對比還不知。
http://www.mamicode.com/info-detail-929571.html這篇文章的測試顯示在內存方面,fresco比glide有優勢一些。
如果可以駕馭fresco的話,建議還是選擇fresco。