Android系統(tǒng)加載圖片是先要把圖片轉(zhuǎn)換為Bitmap對象然后再傳到ImageView里頭顯示的。
現(xiàn)在難點是:
- 不同的圖片有不同的大小,造成Bitmap對象size不一樣
- 不同的機器內(nèi)存不一致,內(nèi)存小的機器很容易因為單個或者多個Bitmap導(dǎo)致OOM
為了防止OOM
- 適當(dāng)?shù)慕o圖片進行壓縮
- 適當(dāng)?shù)木彺娣桨福╒iewHolder,LruCache,DiskLruCache等)
- 使用BitmapRegionDecoder加載大圖局部(其實就是屏幕大小的顯示部分)
適當(dāng)壓縮圖片
Android API提供了BitmapFactory 類,BitmapFactory 有很多解析方法方便我們創(chuàng)建和壓縮bitmap對象