0

我正在制作一个备忘录类型的应用程序。当用户想要创建备忘录时,他/她可以向该备忘录添加多个图像。一切正常,但是当我添加多个带有图像的备忘录时,我的应用程序因 java.lang.OutOfMemory 异常而崩溃。我知道这与位图有关,所以这是一个示例代码:

noteImage = BitmapFactory.decodeFile(originalExtImgPath)

之后我将这些位图保存在内存中

`AsyncTask.execute {
        for (index in images.indices) {
            storage.createFile("Images", paths[index], images[index])
        }
    }`

我只添加了三个图像,这就是它使用的内存量。

我该如何管理它以减少它使用的内存?谢谢!

4

1 回答 1

2

基本上来说,问题在于您正试图将大图像加载到内存中。没有足够的内存来存储所有图像并且您的应用程序崩溃。诀窍是减少位图的内存占用。

在 Android 开发者网站上有一篇很棒的文章: 有效地加载大型位图

于 2017-06-28T18:15:37.330 回答