在Android上处理几个位图
我正在构建一个android应用程序,它基本上响应触摸事件,当触摸事件发生时,我会检测要执行的动作并对其采取行动。动作由显示不同位图组成,因此动作实际上是动画:在Android上处理几个位图,android,memory-leaks,bitmap,bitmapdata,Android,Memory Leaks,Bitmap,Bitmapdata,我正在构建一个android应用程序,它基本上响应触摸事件,当触摸事件发生时,我会检测要执行的动作并对其采取行动。动作由显示不同位图组成,因此动作实际上是动画: - OnTouchEvent -> draw Bitmaps on SurfaceView 通常1个动画由大约20-30个大小为28KB的图像组成。 由于我需要该应用程序响应速度非常快,我无法在“每次触摸”的基础上分配和释放内存,因此我希望加载所有位图(大约12 MB) 但是,当我加载了大约0.5 MB的图像时: E/And
- OnTouchEvent -> draw Bitmaps on SurfaceView
通常1个动画由大约20-30个大小为28KB的图像组成。
由于我需要该应用程序响应速度非常快,我无法在“每次触摸”的基础上分配和释放内存,因此我希望加载所有位图(大约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)
一次又一次。。。。有什么想法吗?是否可以在画布上绘制图像而不创建位图?我可以在不使用位图工厂的情况下转换位图中的JPG文件吗?(我在这里读到:主要问题是位图数据使用本机堆而不是VM堆)
非常感谢您的帮助:D提前感谢,
泽