5

我拥有一台三星 Galaxy S3,它能够捕捉大小约为 3000 x 2000 的图像。而且,我目前正在开发一个需要捕捉图片的应用程序。我将手机用作调试器,并设置设备为要捕获的图片提供的最佳尺寸。

但是,如果我使用此设置,回调会在我尝试将捕获的字节解码为位图onPictureTaken的方法的第一行给出内存不足错误。Bitmap.decodeByteArray如果我使用Bitmap.Options.inSampleSize = 2,则不会发生内存不足错误。

我希望应用程序能够捕捉设备提供的最佳效果,并且设备在其自己的相机应用程序中执行此操作,但我不能。我不明白。我该如何克服这个问题?

4

2 回答 2

1

http://www.youtube.com/watch?v=_CruQY55HOkAndroid 自定义视图位图内存泄漏。也看看这个视频。讨论 MAT 分析器应该会有所帮助。不使用时也回收位图

于 2012-12-05T14:14:54.230 回答
0

android 中的应用程序必须使用 16mb 左右的内存。如果您要将 inSampleSize 设置为一个非常大的数字以获得原样的图像质量,或者如果您不执行采样,那么它可能会给您带来内存不足的异常。

查看此链接和示例应用程序: 高效显示位图

于 2012-12-05T14:30:07.383 回答