1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Speicherarme Thumbnailerstellung?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Unicate, 11.10.2010.

  1. Unicate, 11.10.2010 #1
    Unicate

    Unicate Threadstarter Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Hi alle zusammen!

    Wie Ihr vielleicht schon in anderen Threads von mir gesehen habt, bastel ich gerade an einer Galeriefunktion, welches ähnlich wie das Std. Galerie App auf einer Gridview dargestellt werden soll.

    Ich habe nun schon so einiges ausprobiert, bin aber immer wieder auf ein und den selben Fehler gestoßen. OutOfMemoryException

    Diese wird geworfen, sobald ich versuche eine Thumbnail (Kind.MINI) zu erstellen.
    Ich dachte mir, schau ich mir den Code von Android dazu an. Also habe ich nach einer kurzen suche im Netz auch den Code für "MediaStore.Images.Media" gefunden wo eine private Methode Thumbnails erstellt und in die Datenbank einträgt.
    Es entsteht das selbe Problem. OutOfMemoryException, was mir sagt, es muss noch eine weitere Methode geben um Thumbnails zu erstellen, denn meine Galerieapp bekommt das 1a hin.

    Zum testen habe ich versucht ein relativ großes Bild (~7MB) in meiner App zu "Thumbnailisieren" - OutOfMemoryException
    Und danach bin ich in die Galerie gegangen. siehe da, nach einer relativ kurzen Rechenzeit war die Galerie inklusive meiner Thumbnail einsatzbereit.

    Mach ich was falsch?

    Wie kann ich eine Thumbnail erstellen, die die Bitmap nicht im Speicher braucht. Es muss also irgendwo eine Methode geben diese mit einem Stream oder so zu erstellen. Aber wo?

    Wenn nicht wo, dann wie?
     
  2. ko5tik, 11.10.2010 #2
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Bei Unix (und android ist linux) gibt es funktion mmap() - welche einen Datei von Datesystem in den vieruellen Speicher abbildet - von dem bekommt die JVM natürlich nicht mit, die hat es ja nicht
    alloziert. Geht aber nur mit Nativ-zeugs (oder doch mit java?)
     
  3. ko5tik, 11.10.2010 #3
    ko5tik

    ko5tik Android-Experte

    Beiträge:
    620
    Erhaltene Danke:
    40
    Registriert seit:
    14.10.2009
    Phone:
    HTC Hero
    Korrektur: java.nio.MappedByteBuffer macht es
     
  4. Unicate, 12.10.2010 #4
    Unicate

    Unicate Threadstarter Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Super danke, ich schau es mir mal genauer an
     
  5. Unicate, 13.10.2010 #5
    Unicate

    Unicate Threadstarter Android-Experte

    Beiträge:
    473
    Erhaltene Danke:
    57
    Registriert seit:
    09.08.2010
    Naja, hab bisher nicht rausfinden können wie ich daraus dann ne Thumbnail erstellen soll.
     
  6. android_noobie, 07.02.2011 #6
    android_noobie

    android_noobie Neuer Benutzer

    Beiträge:
    3
    Erhaltene Danke:
    0
    Registriert seit:
    07.02.2011
    Gibt es denn hierzu schon etwas neues?

    Ein paar codeschnipsel würden weiter helfen :thumbsup:
     

Diese Seite empfehlen