# Bitmap OutOfMemoryError?



## bruce85 (3. Mrz 2014)

Hallo,
ich habe ein Problem um mehrere Bitmaps zu laden, ich bekomme hin und wieder Bitmap OutOfMemoryError.

Derzeit lade ich die Bitmaps z.B. so:

```
test1PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test1);
test2PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test2);
test3PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test3);
test4PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test4);
test5PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test5);
test6PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test6);
test7PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test7);
test8PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test8);
test9PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test9);
test10PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test10);
test11PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test11);
test12PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test12);
test13PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test13);
test14PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test14);
test15PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test15);
test16PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test16);
test17PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test17);
test18PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test18);
test19PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test19);
test20PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test20);
test21PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test21);
test22PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test22);
test23PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test23);
test24PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test24);
test25PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test25);
test26PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test26);
test27PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test27);
test28PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test28);
test29PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test29);
test30PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test30);
test31PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test31);
test32PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test32);
test33PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test33);
test34PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test34);
test35PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test35);
test36PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test36);
test37PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test37);
test38PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test38);
test39PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test39);
test40PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test40);
test41PNG = BitmapFactory.decodeResource(getResources(), R.drawable.test41);
```

Ich weiss jetzt nicht, ob das hier Sinnvoll ist, die ganzen Bitmaps so zu laden, da der Speicher ziemlich ausgelastet ist, denke ich.

Wenn ich die Activity öffne und die Bitmaps lade, dann sind die, denke ich eine weile im Speicher gespeichert.
Wenn ich die Activity beende und die Activity dann nochmal starte, dann bekomme ich manchmal OutOfMemoryError.

Ich denke, die Bitmaps sind noch im Speicher und er ladet ja dann nochmal die Bitmaps, wenn ich die Activity erneut öffne.

Wie kann ich das Problem ambesten beheben?

Ich bedanke mioch schonmal im Voraus.

MfG


----------



## mance (13. Mrz 2014)

Willst du die Bitmaps alle auf einmal anzeigen oder wird nur eine auf einmal angezeigt? 
Wenn zweiteres der Fall ist, dann solltest du nur die ID verwenden und das Bitmap decoden nur wenn du es auch anzeigen willst. 
z.B. so:

test1PNG = R.drawable.test1;

void arbeiteMitBitmap(){
  // hier dann die Resource decoden und damit arbeiten
}


----------



## vatras (23. Mrz 2014)

Alternativ in der Manifest.xml: 

Largeheap=true


----------

