- Forum-Beiträge: 79
16.12.2018, 14:27:42 via Website
16.12.2018 14:27:42 via Website
Moin zusammen,
ich habe mir letztens eine einfache App gemacht, um mir verschieden skalierte Bitmaps von der "scaledBitmap"-Funktion anzusehen, die mir dann in einer ImageView angezeigt werden.
Um das zu realisieren, lade ich die Resource und schreibe die Bitmap dann ins ImageView:
float scale = 2;
Bitmap bitmap = BitmapFactory.decodeResource(applicationResources, getIdentifier(resourceName));
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth() * scale, bitmap.getHeight() * scale, false);
setImageBitmap(scaledBitmap);
So weit, so gut. Auf meinem normalen Handy funktioniert alles super und ich kann problemlos durch meine verschiedenen Resourcen scrollen etc..
Als ich dieselbe App dann testweise auf meinem alten Android Netbook installiert habe, bekam ich nach ein paar Bildern einen "OutOfMemoryError".
Nachdem ich noch einige Sachen ausprobiert habe, bin ich zu dem Schluss gekommen, dass die Bitmaps, auch wenn sie nicht mehr in der ImageView gezeigt werden, noch irgendwo im Speicher liegen müssen.
Sagt euch das irgendwas und gibt es eine Möglichkeit, den Speicher einer App komplett zu löschen oder so?
Ich habe schon versucht, anstatt jedes Mal in dieselbe ImageView zu schreiben, jedes Mal die ImageView mit "removeView" zu löschen und eine Neue für jedes neue Bild zu erstellen, aber das scheint keine Abhilfe zu bringen.