android中的大图片一般都要经过压缩才显示,不然容易发生oom,一般我们压缩的时候都只关注其尺寸方面的大小,其实除了尺寸之外,影响一个图片占用空间的还有其色彩细节。

打开Android.graphics.Bitmap类里有一个内部类Bitmap.Config类,在Bitmap类里createBitmap(intwidth, int height, Bitmap.Config config)方法里会用到,打开个这个类一看

枚举变量
public static final Bitmap.Config ALPHA_8
public static final Bitmap.Config ARGB_4444
public static final Bitmap.Config ARGB_8888
public static final Bitmap.Config RGB_565

一看,有点蒙了,ALPHA_8, ARGB_4444,ARGB_8888,RGB_565 到底是什么呢?

其实这都是色彩的存储方法:我们知道ARGB指的是一种色彩模式,里面A代表Alpha,R表示red,G表示green,B表示blue,其实所有的可见色都是右红绿蓝组成的,所以红绿蓝又称为三原色,每个原色都存储着所表示颜色的信息值

说白了就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位图
RGB_565 代表8位RGB位图

位图位数越高代表其可以存储的颜色信息越多,当然图像也就越逼真。

使用RGB_565会比使用ARGB_8888少消耗2倍的内存,很多时候默认是ARGB_8888,所以我们需要主动设置为RGB_565.

用法:

在压缩之前将option的值设置一下:

1 options.inPreferredConfig = Bitmap.Config.RGB_565;

更多相关文章

  1. Android(安卓)SD Mount
  2. Android基本功:使用Matrix控制变换
  3. android 开发 - 对图片进行虚化(毛玻璃效果,模糊)
  4. Android圆角图片最佳方案
  5. Android(安卓)Intent传递数据
  6. Android中ActivityManager学习笔记(2)-RunningServiceInfo
  7. Android(安卓)使用librtmp推流【音视频传输】
  8. Android(安卓)选取图片、手机拍照以及保存图片到本地、读取图片
  9. android双网卡

随机推荐

  1. 我的Android音乐播放器
  2. android根据屏幕尺寸区分设备类型,phone或
  3. 分析Android的Linux内核
  4. 使用Android(安卓)Studio开发Android(安
  5. Dojo Mobile:iPhone/Android的Web应用开发
  6. Android(安卓)蓝牙调色灯/zigbee调色灯学
  7. Android下基于XML的 Graphics
  8. Android的init过程详解(一)
  9. Android: NDK编程入门笔记
  10. android 线程,服务,活动