关于Android 中 Options.inSampleSize怎么用
2016-01-21 21:58
330 查看
这个是读取bitmap时用到的属性,是为了对原图降采样. 比如原图是一个 4000 * 4000 点阵的图,占用内存就是 4000 * 4000 * 单个像素占用字节数 单个像素占用字节数取决于你用的是 RGB565, ARGB8888 等. 4000 * 4000 这个解析度已很接近目前市面主流机器的默认照片解析度. 假设你用的是RGB565解析这张图,那一个点就占用2个字节.如果完整解析这个图片,就需要 大约3.2MB的内存. 如果你用了一个GridView,同时显示了30张这种图,那几乎可以确定你会收到一个OOM异常. 所以需要对这种大图进行降采样,以减小内存占用.毕竟拇指大小的地方根本用不着显示那么高的解析度. 因为直接从点阵中隔行抽取最有效率,所以为了兼顾效率, inSampleSize 这个属性只认2的整数倍为有效. 比如你将 inSampleSize 赋值为2,那就是每隔2行采1行,每隔2列采一列,那你解析出的图片就是原图大小的1/4. 这个值也可以填写非2的倍数,非2的倍数会被四舍五入. 综上,用这个参数解析bitmap就是为了减少内存占用.
相关文章推荐
- 为什么Android上的一些SDK喜欢将数据库建在SD卡或外部存储
- Android Fragment和Activity
- android之ExpandableListView的使用
- Android BroadcastReceiver的使用
- Android SoundPool播放音频
- Android之设置页面(PreferenceActivity使用)
- Android.mk文件解析
- android 动画-Tween Animation(二) 动画的简单使用
- Android adb 常用命令
- Android 圆形进度条MaterialProgressDrawable
- Android 高德地图2.80新版地图开发详解(本地定位/地图显示/Mark标记/camera移动和缩放)
- Android Fragment和Activity之间通信方式
- Ace教你一步一步做Android新闻客户端(四) 优化Bitmap大法
- android旋转图像Matrix
- android145 360 进程管理
- Android RecyclerView 的基本使用--瀑布流
- Android大图片裁剪终极解决方案(中:从相册截图)
- android照相、相册获取图片剪裁报错的解决方案
- android开发之二维码
- Android ANR问题分析