android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
来源:互联网 发布:centos配置桥接模式 编辑:程序博客网 时间:2024/05/19 05:34
android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
分类:
版权声明:本文为博主原创文章,未经博主允许不得转载。
一般来说,在Android中对图片进行缩放,我们使用以下的代码:
上面这段代码也是一般对图片的进行缩放的方式,不会出什么问题,但是有两个小问题:
1、我们先要从磁盘上先将图片加载到内存,然后才能对图片进行缩放,在移动设备上对内存的要求比较高,这在一定程度上降级了性能。
2、我们使用Bitmap.createBitmap这个方法进行缩放,使用的是Java层面的方法来缩放,我们知道Java层面对图片,视频等进行处理是有性能损失的。
如果只有一两张图片,用上面的方法进行缩放是没有问题的,如果是大量的图片或者是图片很大,就会出现明显降低性能,甚至出现OOM的异常,OOM的异常是必须要处理的。
下面给出优化方案,优化我们也是基于上面两点问题给出的。一次性从磁盘上读取并缩放,而且这个缩放实在Native层,能够显著提高效率,代码如下:
其中calculateInSampleSize方法如下
这段代码是google给出的,我们无需对它进行修改,在上面这段代码中我们使用BitmapFactory.Options的inScaled,inDensity,inTargetDensity来变相对图片进行缩放,但是这有一个局限,就是只能对图片进行等比例的放大或者缩小,不能按任意大小进行缩放,不过这还是适用大部分的情况,因为很少有对图片进行任意的缩放,因为那样会使图片变形。大家有什么问题或者有什么错误,请给我留言,大家一起讨论!!!
阅读全文
1 0
- android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
- android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
- android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
- decode图片时BitmapFactory.Options中的inDensity和inTargetDensity
- 图片缩放 inJustDecodeBounds inSampleSize
- android对图片进行缩放
- inDensity,inTargetDensity,inScreenDensity关系详解
- inDensity,inTargetDensity,inScreenDensity关系详解
- Android图片缩放,压缩总结(inSampleSize,Matrix比较)
- Android图片缩放,压缩总结(inSampleSize,Matrix比较)
- Android图片缩放,压缩总结(inSampleSize,Matrix比较)
- 图片缩放 inJustDecodeBounds inSampleSize matrix
- Android(OPhone)对图片进行缩放
- RecycleView使用glide显示图片,对图片进行缩放
- Android 图片处理系列--计算图片缩放数inSampleSize,避免oom
- C# 对图片进行缩放
- Android自由地对图片进行缩放和移动
- Android对图片进行平移,缩放,旋转操作
- 顺序打印矩阵
- 前端测试入门
- 1008. 数组元素循环右移问题 (20)
- 初探京东云,一个改变世界的云服务商
- Java内存区域初识
- android使用inSampleSize、inScaled、inDensity、inTargetDensity对图片进行缩放
- 关于Bitmap对象,尺寸压缩,质量压缩
- 2010山东省信息学夏令营模拟赛Test 5.浇水 题解
- Java中数据的存储方式
- 1009. 说反话 (20)
- ASP.NET开发实例大全(基础篇)--1、目录
- 1010. 一元多项式求导 (25)
- AIDL
- 剑指offer——把二叉树打印成多行(一般)