Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Java Android:OutOfMemory在调用BitmapFactory.decodeStream()时_Java_Android_Memory_Bitmap - Fatal编程技术网

Java Android:OutOfMemory在调用BitmapFactory.decodeStream()时

Java Android:OutOfMemory在调用BitmapFactory.decodeStream()时,java,android,memory,bitmap,Java,Android,Memory,Bitmap,我正在开发一个Android应用程序,它必须在屏幕上显示一些图片(通常由手机摄像头拍摄)。我创建位图的方法是: Uri uri = Uri.withAppendedPath(Images.Media.EXTERNAL_CONTENT_URI, "" + mediaId); bitmap = BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri)); 第二行代码出现在一些手机上,但OutOfMemo

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

Uri uri = Uri.withAppendedPath(Images.Media.EXTERNAL_CONTENT_URI, "" + mediaId);
bitmap = BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri));
第二行代码出现在一些手机上,但OutOfMemoryException除外。我是否做错了什么,或者是否有其他方法可以做同样的事情


提前感谢您的建议

相机中的照片有几MB大。Android应用程序最大可用内存为24MB(请参阅)

因此,如果您的应用程序具有来自相机的多个图像,它将无法装入应用程序可用的RAM中


缩小您的图像恐怕是唯一的解决方案…

谢谢!我曾经尝试过缩小比例,在某种程度上这会有所帮助,但我仍然看到过以全屏模式显示图片的应用程序:(如果这些应用程序一次只显示一张图片,它们可能会破坏图像数据以清除内存…(或者缩小图像,因为屏幕比相机拍摄的图像小得多)