在我的应用程序中,我尝试使用100个图像显示页面卷曲效果,如以下github链接中所述 - here
在示例代码中,他们只使用了两个图像,但在我的应用程序中,我使用了大约90个图像。这会导致应用程序崩溃,在logcat中说出以下问题
E/dalvikvm-heap(603): Out of memory on a 5529616-byte allocation.
当我尝试使用7张图像时效果很好。当我试图增加超过7时,它会崩溃。我的所有图像都在可绘制文件夹中。
在该github代码中,drawable的图像如下所示
mPages.add(BitmapFactory.decodeResource(getResources(),R.drawable.page9));
mPages.add(BitmapFactory.decodeResource(getResources(),R.drawable.page10));
mPages.add(BitmapFactory.decodeResource(getResources(),R.drawable.page11));
mPages.add(BitmapFactory.decodeResource(getResources(),R.drawable.page12));
mPages.add(BitmapFactory.decodeResource(getResources(),R.drawable.page13));
mPages.add(BitmapFactory.decodeResource(getResources(),R.drawable.page14));
mPages.add(BitmapFactory.decodeResource(getResources(),R.drawable.page15));
如何解决此问题并加载所有图片,任何更好的建议......
答案 0 :(得分:0)
您必须意识到Android中每个应用程序的堆非常有限,因此您无法使用与台式PC上相同的内存。以下是您可能想要使用的解决方案:
Bitmaps
,并在它们变得不必要时立即回收它们。 Bitmaps
的数量。希望您能够实施其中一项,以使您的应用程序更好地运作。
答案 1 :(得分:0)
使用延迟加载机制。不要一次将所有位图加载到内存中,在ArrayList
中保存id,然后根据需要加载它们,并在使用它们之后,卸载位图,以便释放内存。