【Android学习】简述Bitmap中的BitmapFactory.decodeResource及Bitmap.Config.ARGB_8888

今天练习了书上的一个涂鸦Android程序,因为是初学,好多内容不是太清楚就去查了下资料,把其中Bitmap中的一些类和方法的含义和用法记录下来,方便记录和以后的使用。


首先看一句代码:

Bitmap originalBitmap=BitmapFactory
   .decodeResource(getResources(),R.drawable.img1)
   .copy(Bitmap.Config.ARGB_8888,true);

 

  1. 其中BitmapFactory类,是一个工具类,用于从不同的数据源解析、创建Bitmap的对象。而decodeResource()是BitmapFactory类中的一个方法:如上述代码中的有两个参数的BitmapFactory.decodeResource(?,?),第一个参数是包含你要加载的位图资源文件的对象(一般写成 getResources()就ok了);第二个是需要加载的位图资源的id。
  2. Bitmap.Config是指使用指定的选项创建图像的副本,"true"是指可变的。其中Bitmap.Config的参数ARGB_8888是指一种色彩模式存储透明度和色彩信息:A代表Alpha也就是透明度、R表示red红色、G表示green绿色、B表示blue蓝色,我们都知道所有的可见色都是右红绿蓝组成的,所以红绿蓝又称为三原色,每个原色都存储着所表示颜色的信息值。还有另外可选的两个:ARGB_4444,RGB_565。
  • RGB_565 代表每个像素red占5位、green占6位、blue占5位共16位即2个字节的RGB位图,但是只有颜色,没有透明度
  • ARGB_4444代表每个像素alpha、red、green、blue各占4位共16位即2个字节的ARGB位图
  • ARGB_8888代表每个像素alpha、red、green、blue各占8位共32位即4个字节的ARGB位图

而在Android中界面显示图片时,需要的内存空间不是按图片的实际大小来计算的,而是按像素点的多少乘以每个像素点占用的空间大小来计算的。比如一个400*800的图片以ARGB_8888形式显示则占用:(400*800*4)/1024=1500kb的内存。

位图位数越高代表其可以存储的颜色信息越多,图像也就越逼真。现在手机内存都比较大,所以一般默认使用的都是ARGB_8888,显示的会比较清晰当然占用的内存就比较高,比如同样的一张图用ARGB_8888比用ARGB_4444显示要高一倍的内存。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值