編輯:Android資訊
快速而又高效的顯示圖片對 Android 設備來說是件極其重要的事情,但在過去的幾年裡,在有效存儲圖像方面我們面臨了很多問題。圖片太大,而手機又只有很小的內存,特別是 Android 設備還要將內存分割給各個應用。所以,太多的圖片總會耗去大部分的內存,從而導致應用的崩潰。
為了解決這一問題,Facebook 最近推出了一款用於 Android 應用中展示圖片的強大圖片庫 Fresco,它能夠從網絡、本地存儲和本地資源中加載圖片。而且,為了節省數據和 CPU,它擁有三級緩存。此外,Fresco 在顯示方面是用了 Drawees,可以顯示占位符,直到圖片加載完成。而當圖片從屏幕上消失時,會自動釋放圖片所占的內存。Fresco 支持 Android 2.3 及以上版本,目前已托管至 Github 上。
主要特性:
解壓後的圖片和 Android 的位圖都會占據很大的內存,這導致 Java 垃圾收集器更頻繁的運行,也讓應用變得更加緩慢,這一問題在沒有對垃圾收集器進行完善的 Android 5.0 上尤為嚴重。
在 Android 4.x 及以下版本,Fresco 將圖片放置在 Android 內存的一個特殊位置。這可以確保當圖像不在屏幕上顯示時,可以自動釋放它們所占的內存。讓應用運行的更快速,且不易崩潰。
使用 Fresco 的應用,即使在配置低端的設備上也能正常運行,而且你無需經常性地去擔心圖片的內存占用情況。
Web 上的漸進式(Progressive)JPEG 圖片已經存在多年,打開文件過程中,會先顯示整個圖片的模糊輪廓,隨著掃描次數的增加,圖片變得越來越清晰。這種格式可以說是網絡較慢情況下的救星,通過圖片的輪廓知道正在加載的圖片大概是什麼。
Android 自己的圖片庫不支持 streaming,而 Fresco 可以,只需指定一個 URI,你的應用程序就可以隨著數據的到來,自動更新它的顯示。
動畫 GIF 和 WebP 應該是應用的難點,每一幀都是一個大型的位圖,而每個動畫都是一系列的幀。Fresco 則負責加載和處理這些幀及管理它們的內存。
Fresco 在顯示方面使用了 Drawees,Fresco 的 Drawees 能夠顯示占位符,直到圖片已加載,並自動顯示到圖像到達時:
Fresco 的圖像管道可以讓你以多種方法來自定義加載:
即使是在老版的 Android 上也可以解碼 WebP 圖像,只不過不是全部支持。
傳送門:Fresco 官網、Github 托管地址
一、前言 我很喜歡電腦,可是筆記本還是太大,筆記本電腦再小還是要弄個小包背起來的,智能手機則不同,它完全就是一個手機,可以隨意裝在一個口袋裡隨身攜帶。因此我在20
在Android開發中,存儲數據的方式有很多種,本文將通過一個簡單的實例來分析如何用Android SharedPreferences數據存儲方式來進行輕量級數據
Android異步消息機制架構 Android異步消息處理架構,其實沒那麼復雜。簡單來說就是 looper 對象擁有 message queue ,並且負責從 m
Toast用於向用戶顯示一些幫助/提示。下面我做了5中效果,來說明Toast的強大,定義一個屬於你自己的Toast。 注意: LENGTH_LONG—