在Android上处理多个位图

时间:2011-04-20 03:08:11

标签: android memory-leaks bitmap bitmapdata

我正在构建一个基本上回答触摸事件的Android应用程序,当触摸事件发生时,我会检测要执行的操作并对其采取行动。这些操作包括显示不同的位图,因此动作实际上是一个动画:

- OnTouchEvent -> draw Bitmaps on SurfaceView  

通常1个动画包含大约20-30张图像,大小为28kbyte。 因为我需要应用程序非常敏感,我不能在“每次触摸”的基础上分配和释放内存,所以我想加载所有的位图(应该大约12 MB)

然而,当我达到大约0.5 MB的图像加载时:

E/AndroidRuntime(10553): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
E/AndroidRuntime(10553):    at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)

一遍又一遍......任何想法?是否可以在Canvas上绘制图像而无需创建位图?我可以在不使用BitmapFactory的情况下在Bitmaps中转换我的JPG文件吗? (我在这里读到:BitmapFactory OOM driving me nuts主要问题是Bitmap数据使用Native Heap而不是VM堆)

任何帮助非常感谢:D
提前谢谢,

0 个答案:

没有答案