三星Galaxy S3中的缩放位图失败

时间:2013-11-26 06:34:31

标签: java android bitmap null scale

感谢您早些时候的支持。 目前我正在开发一个项目,我需要调整从Server下载的图像的大小。图像具有较大的分辨率,因此我想根据设备的screenSize调整大小。以下是我的代码。请看看。

                    // decode image size initially
        BitmapFactory.Options o = new BitmapFactory.Options();
        o.inJustDecodeBounds = true;
        FileInputStream stream1 = new FileInputStream(f);
        BitmapFactory.decodeStream(stream1, null, o);
        stream1.close();

        // Find the correct scale value.
        int width_tmp = o.outWidth, height_tmp = o.outHeight;
        int scale = 1;
        while (true) {
            if (width_tmp / 2 < REQUIRED_SIZE
                    || height_tmp / 2 < REQUIRED_SIZE)
                break;
            width_tmp /= 2;
            height_tmp /= 2;
            scale *= 2;
        }

        // decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize = scale;
        FileInputStream stream2 = new FileInputStream(f);
        Bitmap bitmap = BitmapFactory.decodeStream(stream2, null, o2);
        stream2.close();

但是一旦我得到了理想的比例,它会在三星Galaxy S3的情况下在代码的末尾找到一个空位图。它在仿真器,三星galaxy S4,Htc one v上工作正常。我也担心代码的泛化,所以它应该在每个设备上工作。

如果有人遇到过这样的问题,请告诉我。

1 个答案:

答案 0 :(得分:0)

你的REQUIRED_SIZE值是多少?将它设置为1024.因为可能是因为解码大分辨率图像时出现内存不足异常。