Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android上处理几个位图_Android_Memory Leaks_Bitmap_Bitmapdata - Fatal编程技术网

在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

我正在构建一个android应用程序,它基本上响应触摸事件,当触摸事件发生时,我会检测要执行的动作并对其采取行动。动作由显示不同位图组成,因此动作实际上是动画:

- 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
提前感谢,