MediaStore.Bilder.Media.getBitmap und out-of-memory-Fehler
Mein code ist:
public Bitmap loadPhoto(Uri uri) {
Bitmap scaled = null;
try {
scalled = Bitmap.createBitmap(
MediaStore.Images.Media.getBitmap(getContentResolver(), uri),
0,0,90, 90);
if (scaled == null) { return null; }
} catch(Exception e) { }
return scaled;
}
Danach. Ich Anzeige skaliert Bildansicht. Jedes Bild kommt aus der Kamera.
Jedes mal, bekomme ich Fehler: out of memory nachdem ich die Anzeige von drei Fotos von der Kamera. Wie man dieses Problem lösen?
Ich hatte das gleiche problem, check out this link: http://tutorials-android.blogspot.co.il/2011/11/outofmemory-exception-when-decoding.html
Siehe auch Chet Haase ' s nettes tutorial auf bitmap-Skalierung: youtube.com/watch?v=12cB7gnL6po
beachten Sie DIESE SEITE IST SEHR veraltet - heute ist Sie genau dies tun: stackoverflow.com/a/24135522/294884
hast du schon Antwort?? Bitte teilen code
Siehe auch Chet Haase ' s nettes tutorial auf bitmap-Skalierung: youtube.com/watch?v=12cB7gnL6po
beachten Sie DIESE SEITE IST SEHR veraltet - heute ist Sie genau dies tun: stackoverflow.com/a/24135522/294884
hast du schon Antwort?? Bitte teilen code
InformationsquelleAutor Anton | 2012-07-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit BitmapFactory um das problem zu beheben http://developer.android.com/reference/android/graphics/BitmapFactory.html
InformationsquelleAutor Shayden117
Für diejenigen, die für code-Beispiel:
InformationsquelleAutor Praveen Katha
Den MediaStore.getBitmap Methode ist eine convenience-Methode, die nicht geben Sie eine sample-Größe beim abrufen der bitmap. Wenn Sie mit getBitmap(ContentResolver, Uri), und wollen, verwenden Sie einen sample-Größe, verwenden Sie einfach den ContentResolver, um die Eingabe-Datenstrom und Dekodieren die bitmap als Sie es normalerweise tun würden (die Berechnung der Stichprobengröße zuerst, und dann laden Sie es mit der geeigneten Stichprobengröße).
Google bietet diesen Beispielcode (in Bezug auf effizienten laden von bitmaps) in link Die Verwendung des ContentResolver kann gefunden werden, indem man an der Umsetzung für den MediaStore.getBitmap. Es macht einen Aufruf an die content-resolver in der gleichen Weise
Ich weiß, man kann die Antworten finden, die anderswo, wie ich hatte dies schon, denn die Antwort ist unvollständig. Jeder, der dieses liest, zu beantworten haben wird, das gleiche zu tun Beinarbeit. Ein guter Stack Overflow-Antwort sich nicht auf externe links, um es zu vollenden.
InformationsquelleAutor Peter O