Android 使用图像时发生java.lang.OutOfMemoryError

Android 使用图像时发生java.lang.OutOfMemoryError,android,image,out-of-memory,Android,Image,Out Of Memory,我有一个活动在图像视图中显示一个图像,如果我返回并再次转到该活动,应用程序将崩溃,并显示以下消息: 01-08 00:17:18.089: E/AndroidRuntime(12547): FATAL EXCEPTION: main 01-08 00:17:18.089: E/AndroidRuntime(12547): java.lang.OutOfMemoryError 01-08 00:17:18.089: E/AndroidRuntime(12547): at android.gr

我有一个活动在图像视图中显示一个图像,如果我返回并再次转到该活动,应用程序将崩溃,并显示以下消息:

01-08 00:17:18.089: E/AndroidRuntime(12547): FATAL EXCEPTION: main
01-08 00:17:18.089: E/AndroidRuntime(12547): java.lang.OutOfMemoryError
01-08 00:17:18.089: E/AndroidRuntime(12547):    at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
01-08 00:17:18.089: E/AndroidRuntime(12547):    at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:493)
01-08 00:17:18.089: E/AndroidRuntime(12547):    at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:299)
01-08 00:17:18.089: E/AndroidRuntime(12547):    at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:324)
01-08 00:17:18.089: E/AndroidRuntime(12547):    at com.rbrlnx.lugares.mostrarLugar.onCreate(mostrarLugar.java:74)
活动是这样的

sFoto=obtainsRealPath(Uri.parse(foto));
Bitmap bitmap = BitmapFactory.decodeFile(sFoto);
ImageView iLugar = (ImageView) findViewById(R.id.iDelLugar);
iLugar.setImageBitmap(bitmap);
只有一个图像,为什么内存不足?

请尝试改用:

如果这不能解决问题,那么图像就太大了


读入内存的位图比磁盘上的原始位占用更多的空间。如果不需要对位图数据执行任何操作,只需将Uri(路径)传递给imageView文件就更有效。

BitmapFactory.Options=new BitmapFactory.Options();options.inSampleSize=8;是的,我把这个放进去了,现在它工作得很好。试着查看完整的日志,你会发现dalvik虚拟机拒绝了你的空间分配。它请求了多少空间,又有多少可用空间?logcat不要告诉我没有空间,只有我粘贴的代码。你显然没有在正确的日志中查找,那么,当你得到拒绝的空间时,会有一个日志说dalvik vm刚刚拒绝了你的内存请求。
ImageView iLugar = (ImageView) findViewById(R.id.iDelLugar);
iLugar.setImageURI(Uri.parse(foto));