0

我正在开发一个图像处理应用程序,其中我有一个包含多个图像的相册文件夹。

项目中也可以有不止一张专辑。在启动应用程序有一个专辑列表。在选择相册画廊视图时,将显示包含在该相册中的图像。

如果我们选择任何图像而不是启动新活动,您可以在其中对所选图像进行绘图(即您可以在图像上绘制线条或形状)。您还可以使用相机或从图库中将图像添加到相册。现在我面临的问题是应用程序工作正常。但我无法处理 OutOfMemory 错误。我已经尝试了很多东西。如

  1. 调整图像大小。
  2. 破坏活动。
  3. 使用数据库助手类的应用程序上下文。
4

2 回答 2

0

您必须选择使用 android 中的图像: - 使用 java 和 SDK - 使用本机代码和 NDK

如果您只想使用 SDK,请尝试使用inSampleSize对资源图像进行采样。除了采样图像之外,请确保您在使用后正确回收图像资源,并且您的应用程序中没有内存泄漏。您可以使用MAT来发现内存泄漏。

或者您可以使用 NDK 编写代码。当您使用本机代码时,您在其中创建的对象位于本机堆中,与 java.util.

于 2012-10-11T10:03:11.760 回答
0

OOM(OutOfMemory)问题总是由于Bitmap Object处理不当造成的。因此,您尝试过的(调整大小、销毁活动等)无法解决 OOM 问题。

解决OOM的更好方法是根据设备的分辨率密度将图像加载到内存中。Goole Android 培训课程有一章讨论如何有效地加载大图像。可以参考这里

https://developer.android.com/training/displaying-bitmaps/load-bitmap.html

希望这会对你有所帮助!

于 2016-09-06T04:04:03.593 回答