Android图片缓存

根据Android版本的不一样,bitmap data存放的位置是不一样的,3.0之前是分配在native heap上,3.0之后是分配在VM heap上。 spa

BitmapFactory里就那么几个decode方法,很容易找到BitmapFactory .decodeStream就能够解决。下面贴一下代码: code

BitmapFactory.Options options = new BitmapFactory.Options(); orm

options.inPreferredConfig = Config.ARGB_8888; 图片

options.inPurgeable = true;// 容许可清除 内存

options.inInputShareable = true;// 以上options的两个属性必须联合使用才会有效果 开发

String sname = String.format( “xxx.png”, sTowerStyle, j, sDirction, i); it

InputStream is = am.open(sname); io

arrBmp[ iBmpIndex] = BitmapFactory .decodeStream(is, null, options); form

 

Java代码
Bitmap.Config  ALPHA_8    
Bitmap.Config  ARGB_4444    
Bitmap.Config  ARGB_8888    
Bitmap.Config  RGB_565  map


首先
Java代码
A:Alpha透明度
R:Red红色
G:Green绿色
B:Blue蓝色


而后

Java代码
Bitmap.Config  ALPHA_8    图形参数应该由一个字节来表示,应该是一种8位的位图
Bitmap.Config  ARGB_4444  图形的参数应该由两个字节来表示 分别用4个bit来记录每一个像素的A、R、G、B数据,16色位图
Bitmap.Config  ARGB_8888  图形的参数应该由四个字节来表示 分别用8个bit来记录每一个像素的A、R、G、B数据,就是常说的32bit位图、256色位图(这个也多是RGB888这种24bit位图)  
Bitmap.Config  RGB_565 图形的参数应该由两个字节来表示 分别用5个、6个和5个bit记录像素的R、G、B数据,其中G的6个bit中一个是无效保留的,32色位图

通常状况下咱们都是用ARGB_8888    可是它也相对的很占内存 由于一个像素8+8+8+8=32位  8位一个字节  也就是一个像素4个字节 若是是800*480的图片的话 也就是 800*480*4/1024/124  估计也有1M多了 因此做为手机应用开发人员你使用的内存是有限的

相关文章
相关标签/搜索