【发布时间】:2017-12-07 17:05:27
【问题描述】:
我只是从 drawable 中获取图像并将其放入位图中,但是在进入位图时会引发错误
java.lang.OutOfMemoryError: 无法分配 1250874912 字节分配,其中 16777216 个可用字节和 338MB 直到 OOM
下面是我的代码
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.drawable.vr_image);
int size = icon.getByteCount();
在 stackoverflow 上找到了一些解决方案,但这些也不起作用。
在应用程序标签下的清单上,我定义了以下值
android:allowBackup="true"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:supportsRtl="true"
所以任何人都可以帮助我解决这个问题,但没有得到任何解决方案。
【问题讨论】:
-
你的
vr_image图片尺寸是多少? -
9999x3475 是图像的尺寸
-
您认为
9999x3475是移动平台上图像的正常尺寸? -
然后像普通文件一样用文件流读取图像,不要先转换成位图。这样,您将位图的内容加载到大约 1.2gb 的内存中(基于错误消息中的字节)。使用固定缓冲区大小读取它并通过套接字发送该缓冲区数据就足够了
-
@WarrenFaith 我已经解决了这个问题,因为你告诉我非常感谢!