Bitmap-Bild aus der Erinnerung

Ich weiß es gibt viele Diskussionen über android, bitmap-Bilder aus der Erinnerung, aber ich Frage mich, wenn jemand könnte es mir erklären..

Derzeit in meiner app habe ich eine Tätigkeit, die Listen Bild (niedrige Qualität) und wenn ich auf ein Bild-es öffnet sich eine neue Aktivität, um das Bild anzuzeigen Vollbild. In meiner 2. Aktivität der Klasse I haben:

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
bm = BitmapFactory.decodeFile(myImagePath, options);

Dann legte ich diese in eine Bildansicht, um es anzuzeigen. Dies funktioniert, und zeigt mein Bild auf seine volle Qualität. Jedoch wenn ich auf zurück, und klicken Sie dann auf, um zu sehen, dass Bild wieder (und wiederholen Sie dies 6 mal) .. auf dem 6. mal öffnen des Bildes (activity2) bekomme ich eine out of memory Fehlermeldung besagt, dass die Heap-Größe=6919KB, Zugeordnet=3125KB, Bitmap Size = 25848KB!

Wie wird die bitmap-Größe so groß sein? Ich nahm an, es kann sein das erstellen neuer Instanzen die ganze Zeit, so dass ich dann beschlossen, eine Methode in meinem 2-Aktivität, wenn die zurück-Taste gedrückt..und bei dieser Methode habe ich meine bitmap=null und hat auch System.gc() zum löschen der garbage collector ABER das hat das problem nicht beheben. Noch heute bekomme ich eine out of memory-Fehler auf der 6. mal der Klick auf die Miniaturansicht, um das Bild in voller Auflösung

Kann mir jemand erklären, warum? Dank

  • Das ist ungefähr eine 6-megapixel-bitmap mit alpha-Kanal. Bitmaps sind groß.
  • warum ist die bitmap-Größe - 25 MB auf der out of memory Fehler dann? und wie ich sagte, es wird die Arbeit für 5 Ansichten und der Arbeitsspeicher auf das 6. mal
  • Sind Sie undicht Speicher?
  • ich muss denke ich.. aber ich verstehe nicht, wie
InformationsquelleAutor Mr X | 2011-07-13
Schreibe einen Kommentar