Java Android:OutOfMemory在调用BitmapFactory.decodeStream()时
我正在开发一个Android应用程序,它必须在屏幕上显示一些图片(通常由手机摄像头拍摄)。我创建位图的方法是: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
Uri uri = Uri.withAppendedPath(Images.Media.EXTERNAL_CONTENT_URI, "" + mediaId);
bitmap = BitmapFactory.decodeStream(context.getContentResolver().openInputStream(uri));
第二行代码出现在一些手机上,但OutOfMemoryException除外。我是否做错了什么,或者是否有其他方法可以做同样的事情
提前感谢您的建议相机中的照片有几MB大。Android应用程序最大可用内存为24MB(请参阅) 因此,如果您的应用程序具有来自相机的多个图像,它将无法装入应用程序可用的RAM中
缩小您的图像恐怕是唯一的解决方案…谢谢!我曾经尝试过缩小比例,在某种程度上这会有所帮助,但我仍然看到过以全屏模式显示图片的应用程序:(如果这些应用程序一次只显示一张图片,它们可能会破坏图像数据以清除内存…(或者缩小图像,因为屏幕比相机拍摄的图像小得多)