android 圖片佔用內存與什麼有關

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)*圖片的顏色模式,就是它所佔的真實的內存。

相關文章
相關標籤/搜索