由于图片android工作室内存不足

时间:2016-12-09 22:28:37

标签: android hashmap

我遇到了这个问题。我想添加这些图片,因为他们有某种索引但我已经尝试添加到数组和现在的hashmap。现在出现同样的错误。

我想如何将这些图像添加到它没有使用所有记忆的索引中?我正在尝试制作测验游戏,我将正确的答案编号为0-21。

Error picture

1 个答案:

答案 0 :(得分:1)

发生错误是因为所有drawable都被解码为位图。考虑将int ID存储在Collection(例如R.drawable.someimagename)中,并在需要时及时获取真实Drawable对象。

由于您拥有索引为0-21的常数条目,因此您可以使用数组:

int[] groundForceDrawables = new int[22];
groundForceDrawables[0] = R.drawable.sotamies_kauluslaatta;
groundForceDrawables[1] = R.drawable.korpraali_kauluslaatta;
// and so on

当你真的需要在索引i处绘制图像时:

Drawable myCurrentDrawable = getResources().getDrawable(groundForceDrawables[i]);

这仅适用于您不必同时显示所有可绘制的内容的情况。如果你必须将Drawable对象保存在缓存中,因为你必须同时显示它们,我仍然建议缩小它们,你的堆将足够大以保存位图以填充屏幕,除非它们的分辨率不必要地高

如果您还没有这样做,也可以增加堆大小:How to increase heap size of an android application?