Android中的图片(理解篇)

1.图片

首先,我们要知道手机上的图片,是以位图的形式展示的,是由一个个像素点组成的。

1.1 位图
位图,也称Bitmap。是不是觉得很熟悉,毕竟Bitmap我们处理图片的时候经常用到的一个类。

位图通常会占用我们的内存,占用的太多,就会出现我们常提到的OOM现象。

我们要解决这个问题,最常见最有效的解决方案:让内存的占用率变得更低。

实行这个方案之前,我们得明白:

  • 位图大小怎么计算?
1.2 像素

像素:是指在由一个数字序列表示的图像中的一个最小单位,称为像素。
我们提到的位图的长和宽,就是以像素(px)为单位。
而位图的大小=长 x 宽 x 位深 =xxx bit=yyy byte

位深,是指每个像素需要记录颜色的比特位数。(一个字节=8比特)

以下是图片的压缩格式:

其中,A代表透明度;R代表红色;G代表绿色;B代表蓝色。

ARGB_8888

表示32位ARGB位图,即A=8,R=8,G=8,B=8,一个像素点占8+8+8+8=32位,4个字节

RGB_565

表示16位RGB位图,即R=5,G=6,B=5,它没有透明度,一个像素点占5+6+5=16位,2个字节

所以,知道了这些,我们可以简单的想到两种方案:

  • 等比例缩短 长和宽
  • 减少 位深

但首先我们要明白,这两种方案都有可能造成图片的变样,所以我们要分析利弊。
这里,我们不用理会dp,反正dp,px最终都会以px为单位去计算。
第一种方案
手机,需要显示一张 长800px,宽400px的图片,而网络下载的是一张长1600px,宽800px的图片,如果拿网络下载的这张图片去加载内存,无疑是一种浪费,使内存更加紧张。
这种情况,我们就可以对图片进行压缩,等比例缩短长和宽。
第二种方案
记录颜色的位数减少,一般都会造成颜色的偏差,一般不建议这样做。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值