android - 将图像转换为 ARGB_8888 时出现错误 :Bitmap size Exceed VM budget,

标签 android jakarta-ee

这是我的代码:
File file = new File(Jpeg文件路径大小为700kb);

InputStream in = null;

        try  {
    in = new BufferedInputStream(new     FileInputStream(file));
     }
     catch (Exception e) {
            // TODO: handle exception
        }
       bitmap =BitmapFactory.decodeStream(in);
       bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);

请帮助我在这个复制行中遇到错误,我想制作其 ARGB_8888 图像。需要帮助:(

最佳答案

您需要减少内存使用量。

在您的代码中,您首先将流解码为一个位图,然后复制它,这意味着您创建两个大位图对象。

不需要解码然后复制,可以尝试

BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888
// You can try value larger than 1
options.inSampleSize = 2 // If set to a value > 1, requests the decoder to subsample the     original image, returning a smaller image to save memory.

// Decode bitmap
bitmap = BitmapFactory.decodeStream(in, null, options)

在本例中,仅创建了一个位图。并且将 inSampleSize 设置为较大的值以减小加载的位图大小。

关于android - 将图像转换为 ARGB_8888 时出现错误 :Bitmap size Exceed VM budget,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9650175/

相关文章:

java - Android 中如何停止铃声闹钟?

java - 属性未在父 POM 和子 POM 中定义,但仍可在 pom.xml 中访问

java - 将数据从 Servlet 发送到另一个 ServerSocket

java - fragment 兼容性问题:

java - 如何在我的文档中记录或排除生成的 BuildConfig 类?

android - AOSP build image编译报错android 7

android - AVD 无效。自 Intellij IDEA 13 中创建 AVD 以来,配置已更改

java - Activiti - 如何同步用户任务

java - 带有教程的示例企业标准 Spring 应用程序

java - 如何在登录时显示带有欢迎消息的通知?