【问题标题】:Android: OutOfMemory while calling BitmapFactory.decodeStream()Android:调用 BitmapFactory.decodeStream() 时出现内存不足
【发布时间】:2013-01-15 13:45:33
【问题描述】:

我正在开发一个必须在屏幕上显示一些图片(通常由手机的相机拍摄)的 Android 应用。我创建位图的方式是:

Uri uri = Uri.withAppendedPath(Images.Media.EXTERNAL_CONTENT_URI, "" + mediaId);
bitmap = BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri));

第二行在某些手机上出现 OutOfMemoryException。我是不是做错了什么,或者有没有其他方法可以做同样的事情?

提前感谢您的任何想法

【问题讨论】:

    标签: java android memory bitmap


    【解决方案1】:

    相机中的照片有几 MB 大。 Android 应用程序最多有 24MB RAM 可用(请参阅What is the maximum memory limits per application for Android 2.2?

    因此,如果您的应用程序有多个来自相机的图像,则它不会适合您的应用程序可用的 RAM。

    恐怕唯一的解决办法就是缩小图片的尺寸...

    【讨论】:

    • 谢谢!我试过缩小,在某些时候它会有所帮助,但我仍然看到应用程序以某种方式以全屏模式显示图片:(
    • 如果这些应用程序一次只显示一张图片,它们可能会破坏图像数据以清除内存...(或者也缩小图像,因为屏幕是一个很多 比相机拍摄的图像小)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 2017-05-13
    • 1970-01-01
    相关资源
    最近更新 更多