F
funcoder
Fortgeschrittenes Mitglied
- 39
Hallo Zusammen,
ich benötige für mein game mehrere größere PNG dateien mit Alpha Kanal. Die komprimierte PNG ist gut 143 kb groß. Bei Geräten mit einer hohen Pixeldichte lasse ich direkt beim laden der Bitmaps die Grafiken entsprechend hochskalieren.
Mein Problem ist, dass ich anscheinend den Heap Space der VM überschreite.
Was ich nicht verstehe ist, warum versucht wird 3,08 MB Speicher zu reservieren, wobei die Datei ja selbst nur 143 KB groß ist!
Oder deute ich die Exception falsch:
VM won't let us allocate 3080000 bytes
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
Werden alle Grafiken unkomprimiert in den Speicher abgelegt?
Hat jemand von euch schonmal das Problem gehabt, bzw. einen Lösungsvorschlag wie ich das Problem mit Canvas lösen kann?
Meine Bitmaps lade ich wie folgt:
Vielen Dank für jeden Hinweis oder Rat!
ich benötige für mein game mehrere größere PNG dateien mit Alpha Kanal. Die komprimierte PNG ist gut 143 kb groß. Bei Geräten mit einer hohen Pixeldichte lasse ich direkt beim laden der Bitmaps die Grafiken entsprechend hochskalieren.
Mein Problem ist, dass ich anscheinend den Heap Space der VM überschreite.
Was ich nicht verstehe ist, warum versucht wird 3,08 MB Speicher zu reservieren, wobei die Datei ja selbst nur 143 KB groß ist!
Oder deute ich die Exception falsch:
VM won't let us allocate 3080000 bytes
java.lang.OutOfMemoryError: bitmap size exceeds VM budget
Werden alle Grafiken unkomprimiert in den Speicher abgelegt?
Hat jemand von euch schonmal das Problem gehabt, bzw. einen Lösungsvorschlag wie ich das Problem mit Canvas lösen kann?
Meine Bitmaps lade ich wie folgt:
Code:
bitmapConfig = new BitmapFactory.Options();
if(dpi == 120){
bitmapConfig.inScaled = false;
}else if (dpi > 160){
bitmapConfig.inScaled = true;
}
Bitmap grafik = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.grafik,bitmapConfig);
Vielen Dank für jeden Hinweis oder Rat!