Speicherarme Thumbnailerstellung?

U

Unicate

Erfahrenes Mitglied
57
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?
 
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?)
 
Korrektur: java.nio.MappedByteBuffer macht es
 
Super danke, ich schau es mir mal genauer an
 
Naja, hab bisher nicht rausfinden können wie ich daraus dann ne Thumbnail erstellen soll.
 
Gibt es denn hierzu schon etwas neues?

Ein paar codeschnipsel würden weiter helfen :thumbsup:
 
Zurück
Oben Unten