android 圖片佔用內存與什麼有關 android
原文連接:http://blog.csdn.net/zjl5211314/article/details/7041813.net
在開發手機應用的時候,內存是有限的,那使用的時候,就要合理的運用和釋放。
那麼最佔用內存的,估計也是就圖片了,有時候,須要在加載一些大量的圖片。可是,每每回報內存溢出的錯誤。看看圖片的大小呢,也 blog
不大,也就20KB左右,爲何仍是很佔內存呢? 圖片
原來,將圖片轉成bitmap 來使用的時候,圖片所佔的內存,不是它原來的大小,是與 圖片的寬度,高度,和顏色深度有關係。 內存
圖片實際佔用的內存大小 = width * height * 顏色深度 開發
顏色深度: get
Bitmap.Config ALPHA_8
Bitmap.Config ARGB_4444
Bitmap.Config ARGB_8888
Bitmap.Config RGB_565 it
A R G B
透明度 紅色 綠色 藍色 map
其實這都是色彩的存儲方法:咱們知道ARGB指的是一種色彩模式,裏面A表明Alpha,R表示red,G表示green,B表示blue,其實全部的可 方法
見色都是右紅綠藍組成的,因此紅綠藍又稱爲三原色,每一個原色都存儲着所表示顏色的信息值
Bitmap.Config ARGB_4444 每一個像素 佔四位
Bitmap.Config ARGB_8888 32 每一個像素 佔八位
Bitmap.Config RGB_565 16 R佔5位 R佔6位 B佔5位 沒有透明度(A)
說白了就ALPHA_8就是Alpha由8位組成
ARGB_4444就是由4個4位組成即16位,
ARGB_8888就是由4個8位組成即32位,
RGB_565就是R爲5位,G爲6位,B爲5位共16位
因而可知:
ALPHA_8 表明8位Alpha位圖
ARGB_4444 表明16位ARGB位圖
ARGB_8888 表明32位ARGB位圖
eg: 一張20KB的圖片,寬1024(px)*高1024(px)*圖片的顏色模式,就是它所佔的真實的內存。