Drehen von Bildern auf android. Gibt es einen besseren Weg?

Habe ich eine app, die zeigt durchaus ein paar Bilder, die der Benutzer, und wir sehen, eine Menge von Fehlermeldungen mit OutOfMemoryError Ausnahme.

Was wir derzeit tun, ist dies:

//Check if image is a landscape image
if (bmp.getWidth() > bmp.getHeight()) {
    //Rotate it to show as a landscape
    Matrix m = image.getImageMatrix();
    m.postRotate(90);
    bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), m, true);
}
image.setImageBitmap(bmp);

Das offensichtliche problem mit diesem ist, dass wir so erstellen Sie die bitmap aus, das Bild auf den Speicher, und drehen Sie die matrix, das ist ziemlich teuer für den Speicher.

Meine Frage ist einfach:

Gibt es einen besseren Weg, um Bilder zu drehen, ohne dass OutOfMemoryError?

  • twintechs.com/2008/06/...
  • Auf welche Linie wirft die Ausnahme
  • Also, Sie sind darauf hindeutet, die ich drehen Sie das Bild mit einer animation sogar tho es ist nicht eigentlich eine animierte rotation?
  • auf der Bitmap.createBitmap es ist möglich zu überschreiten, die VM ' s erlaubt-Speicher und der Fehler ausgelöst.
  • ich aktualisiert meine Antwort. es hat jetzt eine bessere Lösung.
InformationsquelleAutor Draiken | 2011-11-28
Schreibe einen Kommentar