我目前正在开发一个在ImageView上显示Bitmap的应用程序。现在的问题是,每当试图显示大于4096x4096的位图时,它只是不会显示出来,说明图像太大而无法显示。 例如:我想加载一个4128x2322像素
的图像我将其调整为小于4096x4096。 我想到了这样的事情:
Bitmap bitmap;
if(b.getHeight() >= 4096) {
double f = b.getHeight() / 4096;
b = Bitmap.createScaledBitmap(b, (int)(b.getWidth() / f), (int)(b.getHeight() / f), false);
}else if(b.getWidth() >= 4096) {
double f = b.getWidth() / 4096;
b = Bitmap.createScaledBitmap(b, (int)(b.getWidth() / f), (int)(b.getHeight() / f), false);
}
imageview.setImageBitmap(b);
不知怎的,它不会工作...... 有关如何正确扩展的任何建议?
提前致谢!
答案 0 :(得分:0)
我有一个拍摄照片并返回图像的意图
该图片将存储在其他地方,您可以通过File
或content:
Uri
进行参考。
但要显示拍摄的照片,我需要先缩小它
使用BitmapFactory
加载位图。使用BitmapFactory.Options
及其inSampleSize
字段指示您希望如何对图像进行下采样。这包含在the documentation。
答案 1 :(得分:0)
没有分辨率为4096X4096的设备,您的图片将以任何方式缩放。因此,尝试将其扩展到顶部,让系统将其缩小。如何将屏幕尺寸用于计算并由您自己提供最终比例。这不仅可以节省空间,还可以提高性能。