Bitmap优化

2017-05-20  本文已影响37人  timber_wu

Bitmap复用


Bitmap decode

Bitmap memory

Re-using Bitmaps


预压缩Bitmap


createScaledBitmap(inBmp,64,128)---加载后缩放Bitmap到给定的宽高
mBitmapOption.inSampleSize=4;// 会把采样率变成最接近2的N次方的值
mCurrentBitmap=BitmapFactory.decodeFile(fileName,
mBitmapOptions);
查看原始的宽高
.inJustDecodeBounds=true;


减少占用字节


png--比较高质量的图像
ARGB_8888 每个像素占4字节(图像质量最高,支持透明度)
RGB_565 每个像素占2字节(缩略图,不支持透明度)
ARGB_4444 每个像素占2字节(缩略图,支持透明度)
ALPHA_8 每个像素占1字节
图标类节约内存:ALPHA_8+Color tint
节约COU:ARGB_8888
** Android默认都是以ARGB_8888解码的**
jpg --在Android中也是四个字节

开发中注意压缩PNG文件的大小

Script PNG
如不支持透明度,可以选择JPG格式的文件


LRU cache(实现对象池)


当需要删除缓存时会替换掉那些不经常使用的缓存

    Bitmap bmpToDraw=mCahe.get(filename);
    if(bmptToDraw ==null){
    bmpToDraw=BitmapFactory.decodeFile(filename);
    mCache.put(filename,bmpToDraw);//将Bitmap对象加入对象池
    }
上一篇下一篇

猜你喜欢

热点阅读