页面卷曲效应中的android内存不足问题
在我的应用程序中,我尝试使用100幅图像显示页面卷曲效果,如下github链接所述- 在示例代码中,他们只使用了两个图像,但在我的应用程序中,我使用了大约90个图像。这会导致应用程序崩溃,logcat中出现以下问题页面卷曲效应中的android内存不足问题,android,2d,out-of-memory,page-curl,Android,2d,Out Of Memory,Page Curl,在我的应用程序中,我尝试使用100幅图像显示页面卷曲效果,如下github链接所述- 在示例代码中,他们只使用了两个图像,但在我的应用程序中,我使用了大约90个图像。这会导致应用程序崩溃,logcat中出现以下问题 E/dalvikvm-heap(603): Out of memory on a 5529616-byte allocation. 当我尝试使用7张图片时,效果很好。当我试图增加超过7,它就会崩溃。我的所有图像都在可绘制文件夹中 在该github代码中,drawable中的图像如下
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));
如何解决此问题并加载所有图像,还有更好的建议…您必须意识到,Android中每个应用程序的堆非常有限,因此您无法使用桌面PC上的内存。因此,以下是您可能希望使用的解决方案:
位图,并在它们变得不必要时正确地回收它们李>
限制已适用于您的位图的数量
希望您能实现其中一个,使应用程序工作得更好。使用延迟加载机制。不要一次将所有位图加载到内存中,在数组列表中保留id,并根据需要加载它们,使用它们后卸载位图,以便释放内存