关于图片加载优化的小技巧

        关于图片加载出现OOM异常,是我们Android开发人员经常需要考虑的问题。最近把公司项目中用到的优化小技巧做一个总结出来,方便以后使用。

       1、尽量压缩图片占用内存。

       在使用Bitmap.Config这个变量的时候,它里面会有4个枚举值,分别是: 

Bitmap.Config ARGB_4444:每个像素占四位,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位 

Bitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8+8=32位

Bitmap.Config RGB_565:每个像素占四位,即R=5,G=6,B=5,没有透明度,那么一个像素点占5+6+5=16位

Bitmap.Config ALPHA_8:每个像素占四位,只有透明度,没有颜色。

A:透明度

R:红色

G:绿

B:蓝

默认情况下,使用的是Bitmap.Config ARGB_8888。但是通过比较我们发现,该值是最占内存的。

Bitmap.Config ARGB_4444和Bitmap.Config RGB_565所占用的内存都只有它的一半。

Bitmap.Config RGB_565的优点在于,对图片本身的失真比较小,缺点是没有透明色,不能适用于有透明色的图片。前几天就碰到用Bitmap.Config RGB_565,背景出现大黑框的情况。

Bitmap.Config ARGB_4444刚好相反,有透明色,但是每一种色值却失真比较严重,一般情况下不推荐。

Bitmap.Config ALPHA_8占用内存和默认差不多,不推荐。

        2、处理图片缓存了。如果需要频繁展示的图片,比如适配器中的图片,那么我们就需要缓存在内存中,但是如果只是一般的比如帖子或者商品里面的图片,只需要缓存在sd卡中就可以大大降低对内存的消耗。

你可能感兴趣的:(android)