我正在开发一个图像处理应用程序,其中我有一个包含多个图像的相册文件夹。
项目中也可以有多个专辑。 在启动应用程序时,有一个专辑列表。在选择专辑时,将显示包含在该专辑中的图像的gallarey视图。
如果我们选择任何图像而不是启动新活动,您可以在其中绘制所选图像(即,您可以在图像上绘制线条或形状)。 您还可以使用相机或图库将图像添加到相册。 现在我面临的问题是app工作正常。但我无法处理OutOfMemory错误。 我尝试了很多东西。如
答案 0 :(得分:0)
你必须选择在android中使用图像: - 使用java和SDK - 使用本机代码和NDK
如果您只想使用SDK,请尝试使用inSampleSize对资源图像进行采样。除了采样图像,还要确保在使用后正确回收图像资源,并且应用程序中没有内存泄漏。您可以使用MAT来发现内存泄漏。
或者您可以使用NDK编写代码。使用本机代码时,与java相比,您在其中创建的对象位于本机堆中。
答案 1 :(得分:0)
OOM(OutOfMemory)问题总是由于对Bitmap Object的处理不当造成的。所以你所尝试的(调整大小,破坏活动,等等)无法解决OOM问题。
解决OOM的更好方法是根据设备的分辨率密度将图像加载到内存中。 Goole Android培训课程中有一章讨论如何有效地加载大图像。它可以在这里提到
https://developer.android.com/training/displaying-bitmaps/load-bitmap.html
希望这会对你有帮助!