java - 三星 Galaxy S3 中缩放位图失败

标签 java android bitmap null scale

感谢您之前的支持。 目前我正在开发一个项目,我需要调整从服务器下载的图像的大小。图像具有较大的分辨率,因此我想根据设备的屏幕尺寸调整大小。下面是我的代码。请看一下。

                    // 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 上运行良好。我还担心代码的通用性,因此它应该在每个设备上运行。

如果有人有解决此类问题的经验,请告诉我。

最佳答案

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

关于java - 三星 Galaxy S3 中缩放位图失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210092/

相关文章:

java - 链表添加节点不起作用

java - 轴2 : employ inheritance for codegenerated request/response objects

java - 始终向客户端发送 HTTP 响应而无需请求

android - 如何使 UI 在横向模式下看起来相同?

php - 从Mysql在Sqlite中存储多个数据

android - 大小为 0kb 的位图图像保存

android - 在 Canvas 内拖动图像以更改其位置

android - 如何在使用 retrofit2 发送位图之前调整其大小以避免大尺寸异常

java - servlet 中的登录问题

java - android studio 应用程序只是说网络连接错误