Android中BitmapFactory.Options详解

原创 2015年08月01日 14:33:16

在Android中,BitmapFactory相信大家都很熟悉了,这个类里面的所有方法都是用来解码创建一个Bitmap,其中有一个重要的类是Options,此类用于解码Bitmap时的各种参数控制,那这里面的各种参数都是什么含义呢?今天我们就来重点解读几个参数。


inJustDecodeBounds

如果将这个值置为true,那么在解码的时候将不会返回bitmap,只会返回这个bitmap的尺寸。这个属性的目的是,如果你只想知道一个bitmap的尺寸,但又不想将其加载到内存时。这是一个非常有用的属性。


inSampleSize

这个值是一个int,当它小于1的时候,将会被当做1处理,如果大于1,那么就会按照比例(1 / inSampleSize)缩小bitmap的宽和高、降低分辨率,大于1时这个值将会被处置为2的倍数。例如,width=100,height=100,inSampleSize=2,那么就会将bitmap处理为,width=50,height=50,宽高降为1 / 2,像素数降为1 / 4。


inPreferredConfig

这个值是设置色彩模式,默认值是ARGB_8888,在这个模式下,一个像素点占用4bytes空间,一般对透明度不做要求的话,一般采用RGB_565模式,这个模式下一个像素点占用2bytes。


inPremultiplied

这个值和透明度通道有关,默认值是true,如果设置为true,则返回的bitmap的颜色通道上会预先附加上透明度通道。


inDither

这个值和抖动解码有关,默认值为false,表示不采用抖动解码。如果想知道什么是抖动解码,请参看我另一篇文章:http://blog.csdn.net/haozipi/article/details/47185535


inDensity

表示这个bitmap的像素密度(对应的是DisplayMetrics中的densityDpi,不是density)。


inTargetDensity

表示要被画出来时的目标像素密度(对应的是DisplayMetrics中的densityDpi,不是density)。


inScreenDensity

表示实际设备的像素密度(对应的是DisplayMetrics中的densityDpi,不是density)。


inScaled

设置这个Bitmap是否可以被缩放,默认值是true,表示可以被缩放。


ps:inDensity,inTargetDensity,inScreenDensity三个值的具体关系请参看我的另一篇文章:http://blog.csdn.net/haozipi/article/details/47185917


inPurgeableinInputShareable

这两个值一般是一起使用,设置为true时,前者表示空间不够是否可以被释放,后者表示是否可以共享引用。这两个值在Android5.0后被弃用。


inPreferQualityOverSpeed

这个值表示是否在解码时图片有更高的品质,仅用于JPEG格式。如果设置为true,则图片会有更高的品质,但是会解码速度会很慢。


outWidthoutHeight

表示这个Bitmap的宽和高,一般和inJustDecodeBounds一起使用来获得Bitmap的宽高,但是不加载到内存。

关于图片的压缩(大小压缩和质量压缩)BitmapFactory.Options详解

http://blog.csdn.net/luohai859/article/details/25394605 下面我们回到我们的主题上来:怎样获取图片的大小? 思路很简单: 首先我们把这个...
  • u014045181
  • u014045181
  • 2016年06月02日 14:58
  • 2934

BitmapFactory.Options解决Android加载图片内存溢出的问题

BitmapFactory.Options解决Android加载图片内存溢出的问题1. 在Android软件开发过程中,图片处理是经常遇到的。 在将图片转换成Bitmap的时候,由于图片的大小不一样,...
  • u014225510
  • u014225510
  • 2015年05月06日 21:34
  • 1192

Android使用BitmapFactory.Options压缩图片解决加载大图片内存溢出

由于Android对图片使用内存有限制,若是加载几兆的大图片便内存溢出。Bitmap会将图片的所有像素(即长x宽)加载到内存中,如果图片分辨率过大,会直接导致内存溢出(java.lang.OutOfM...
  • heng615975867
  • heng615975867
  • 2016年01月26日 21:10
  • 1720

Android_BitmapFactory.Options详解

在Android中,BitmapFactory相信大家都很熟悉了,这个类里面的所有方法都是用来解码创建一个Bitmap,其中有一个重要的类是Options,此类用于解码Bitmap时的各种参数控制,那...
  • u013035016
  • u013035016
  • 2016年10月19日 15:17
  • 352

Android中自定义布局中加载图片BitmapFactory.options详解

下面先讲解关于BitmapFactory.options选项的所有字段: 以上是摘自Android官方的文档: 下面我们说一个问题: 怎么获取图片的大小呢? 首先我们要把这个图片转化成...
  • u010581811
  • u010581811
  • 2013年09月06日 13:57
  • 11941

Android实战简易教程<九>(BitmapFactory.Options对资源图片进行缩放)

我们知道,我们编写的应用程序都是有一定内存限制的,程序占用了过高的内存就容易出现OOM(OutOfMemory)异常。因此在展示高分辨率图片的时候,最好先将图片进行压缩,压缩后的图片大小应该和用来展示...
  • scholar_man
  • scholar_man
  • 2015年09月25日 09:18
  • 271

android BitmapFactory.Options(总结网络中出现的一些)

public Bitmap inBitmap If set, decode methods that take the Options objectwill attempt to reuse ...
  • u011382076
  • u011382076
  • 2013年10月24日 10:51
  • 1408

Android Bitmapfactory.Options

android bitmapfactory.options的属性
  • HUSHILIN001
  • HUSHILIN001
  • 2016年10月27日 09:15
  • 536

android之BitmapFactory.Options的使用,避免oom

怎样获取图片的大小? 首先我们把这个图片转成Bitmap,然后再利用Bitmap的getWidth()和getHeight()方法就可以取到图片的宽高了。 新问题又来了,在通过BitmapFa...
  • u011886064
  • u011886064
  • 2015年03月23日 10:26
  • 392

android之 BitmapFactory.Options避免内存溢出OOM的优化方法

尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过j...
  • az313
  • az313
  • 2013年06月03日 14:27
  • 625
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android中BitmapFactory.Options详解
举报原因:
原因补充:

(最多只允许输入30个字)