android - Android将图像从图库加载到图像视图而不减小图像大小
问题描述
我使用以下代码将图库图像导入到我的ImageView
,但它减小了图像大小。如果原始图片大小在5MB以上,导入保存图片后,图片大小缩小到2MB,质量有损失。关于从图库中获取图像并在不降低尺寸和质量的情况下保存的任何建议?
Bitmap bitmapImage = BitmapFactory.decodeFile(images.get(position));
setBitmap(bitmapImage);
解决方案
由于压缩格式和比例因素,大小正在发生变化。你的方法有一个小问题。
Bitmap bitmapImage = BitmapFactory.decodeFile(images.get(position));
setBitmap(bitmapImage);
我会鼓励你检查位图的大小,使用方法bitmap.getByteCount()。您可以观察大小的差异,不要感到困惑。这是因为压缩。(PNG,JPG实际上以压缩的形式存储图像。
您应该使用BitmapFactor.Options加载与位图相同的大小。
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
Bitmap bitmapImage = BitmapFactory.decodeFile(images.get(position), options);
您可以看到我们通过设置inJustDecodeBounds=true配置了我们的选项。它提供有关图像的信息(宽度、高度等)。
推荐阅读
- python-3.x - 如何根据文件路径保存文件?
- jdbc - 没有找到适合 jdbc:redshift 的驱动程序:
- charts - Primefaces 6 条编码
- javascript - 如果未传递可选回调,如何使函数返回承诺?
- python - python函数中的可变与不可变对象行为
- jar - Sbt fat jar(不包括未使用的代码)
- javascript - 网络共享文件夹的目录
- google-apps-script - 谷歌脚本将文件名放入电子表格问题
- ios - 如何获取 UITabBarItem 的默认字体?
- corda - 在 Corda 3.2 的模拟网络中使用 Try.on 会导致无限循环/等待?