博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中BitmapFactory.Options详解
阅读量:5979 次
发布时间:2019-06-20

本文共 1310 字,大约阅读时间需要 4 分钟。

在中,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,表示不采用抖动解码。如果想知道什么是抖动解码,请参看我另一篇文章:

inDensity:

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

inTargetDensity:

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

inScreenDensity:

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

inScaled:

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

ps:inDensity,inTargetDensity,inScreenDensity三个值的具体关系请参看我的另一篇文章:

inPurgeable和inInputShareable:

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

inPreferQualityOverSpeed:

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

outWidth和outHeight:

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

转载地址:http://xuoox.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
要勇于说不(转)
查看>>
Android Studio 第六十四期 - Android业务组件化之URL Scheme使用
查看>>
python getopt模块
查看>>
IdentityServer4 退出登录后,跳转到原来页面
查看>>
linux学习类目:基础命令
查看>>
The mbstring extension is missing
查看>>
shell--expect实现分发文件
查看>>
脚本化自动构建openstack计算节点间免密码ssh登录
查看>>
升级版的图片轮播
查看>>
gitlab部署迁移升级
查看>>
win7右键新建excel2003文件打开提示文件名不一致解决办法
查看>>
获取文件数字模式权限
查看>>
linux内核原子操作
查看>>
MATLAB 入门教程
查看>>
MCollective架构篇3-Puppet插件的部署及测试
查看>>
使用FTP安装RHEL5.4
查看>>
多功能PCIE交换机之十:NTB EEPROM 更新注意事项
查看>>
mongodb 安装
查看>>
查看mysql sql 语句执行时间的两种方法
查看>>