2012-01-07 4 views
0

у меня есть один вид деятельности, которые показывают одно изображение в представлении изображения, если я вернуться, и перейти к деятельности снова сбой приложения с этим сообщением:java.lang.OutOfMemoryError когда использует образы

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); 

есть только один образ, почему из memory¿¿

+0

его явно слишком большой. – JoxTraex

+0

BitmapFactory.Options options = new BitmapFactory.Options(); \t \t options.inSampleSize = 8; Да, я положил это, и теперь он отлично работает – colymore

+0

попробуйте посмотреть в вашем полном логарифмическом режиме, и вы увидите, что вам отказано в распределении пространства из dalvik vm. Сколько он запрашивает и сколько доступно? – JoxTraex

ответ

0

Попробуйте использовать ImageView.setImageURI() вместо:

ImageView iLugar = (ImageView) findViewById(R.id.iDelLugar); 
iLugar.setImageURI(Uri.parse(foto)); 

Если это не устраняет проблему, то изображение слишком велико.

Растровое изображение, считываемое в память, занимает гораздо больше места, чем исходные биты, сидящие на диске. Если вам не нужно делать какие-либо операции с данными Bitmap, просто передача изображения в URI (путь) к файлу более эффективна.