內(nèi)容概述
[翻譯]開發(fā)文檔:android Bitmap的高效使用
本文內(nèi)容來自開發(fā)文檔“Traning > Displaying Bitmaps Efficiently”,包括大尺寸Bitmap的高效加載,圖片的異步加載和數(shù)據(jù)緩存。
Bitmap的處理和加載非常重要,這關(guān)系到app的流暢運(yùn)行和內(nèi)存占用,如果方法不當(dāng),很容易導(dǎo)致界面卡頓和OOM。其中的原因大致有:
android系統(tǒng)對進(jìn)程的內(nèi)存分配限制,移動設(shè)備的配置較低。
Bitmap會消耗很大內(nèi)存。比如相機(jī)拍下的 2592x1936 像素的照片,以ARGB_8888 格式一次加載到內(nèi)存,將占據(jù)19M(259219364 bytes)的內(nèi)存!
通常像ListView,GridView,ViewPager這樣的UI元素會同時(shí)顯示或預(yù)加載多個View,這導(dǎo)致內(nèi)存中同時(shí)需要多個Bitmaps。
下面從幾個方面來分析如何高效的使用圖片。
高效地加載大圖
原始圖片和最終顯示它的View對應(yīng),一般要比顯示它的View的大小要大,一些拍攝的照片甚至要比手機(jī)的屏幕分辨率還要大得多。
原則上“顯示多少加載多少”,沒有必要加載一個分辨率比將要顯示的分辨