OOM错误导致许多小图像(未缩放),大堆大小

时间:2014-04-27 18:03:20

标签: android memory bitmap out-of-memory

我知道有很多关于OOM问题的信息,但在我提出这个问题之前我已经做了很多阅读,我无法在任何地方找到答案。

我正在使用

加载大量小图片
image = BitmapFactory.decodeResource(getResources(), R.drawable.image);

这些图片没有按比例缩小,因此insamplesize无济于事。这些图像中最大的只有大约400kb。我在三星星系s4上堆得很大,我不明白为什么。

  

04-27 13:38:40.023:I / dalvikvm-heap(16915):将堆(frag case)增长到   用于8294416字节分配的97.450MB

总的xhdpi图像是5.1 MB,所以我的堆如何达到97.45mb ???

部分" -byte分配"很大。 2000万+这对我来说没有意义,因为400kb只有~410,000字节,所以为什么有2000万字节的分配呢?

我暂时忽略了这个问题,因为它在我测试过的所有设备上都能正常工作。但现在我尝试使用稍高的res图像(总共5.9mb)并且应用程序获得OOM

  

04-27 13:52:28.890:E / dalvikvm-heap(22852):内存不足   33177616字节分配。

它指向

  

04-27 13:52:28.900:E / AndroidRuntime(22852):at   com.example.packagename.Game.run(Game.java:534)

image = BitmapFactory.decodeResource(getResources(), R.drawable.image);

这张图片只有42kb!为什么需要3300万字节的分配!?

无论如何我还可以在应用程序加载时预先加载这些图像吗?我想这样做是为了加快视图之间的转换,这些图像是否可以以需要更少内存的方式存储? (它们存储在/ res中)

0 个答案:

没有答案