缩放位图低于4096x4096

时间:2014-12-15 18:41:37

标签: android bitmap

我目前正在开发一个在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);

不知怎的,它不会工作...... 有关如何正确扩展的任何建议?

提前致谢!

2 个答案:

答案 0 :(得分:0)

  

我有一个拍摄照片并返回图像的意图

该图片将存储在其他地方,您可以通过Filecontent: Uri进行参考。

  

但要显示拍摄的照片,我需要先缩小它

使用BitmapFactory加载位图。使用BitmapFactory.Options及其inSampleSize字段指示您希望如何对图像进行下采样。这包含在the documentation

答案 1 :(得分:0)

没有分辨率为4096X4096的设备,您的图片将以任何方式缩放。因此,尝试将其扩展到顶部,让系统将其缩小。如何将屏幕尺寸用于计算并由您自己提供最终比例。这不仅可以节省空间,还可以提高性能。