Wie zeigt man in Android ein Bild ( beliebiger Größe ) von der SD-Karte an, ohne einen Speichermangel zu bekommen ?
Muss das Bild zuerst im Media Store gespeichert werden?
Ein Pseudocode-Beispiel würde sehr geschätzt werden. Zusätzliche Punkte, wenn das angezeigte Bild so groß ist wie die Speicherstufe des Geräts zulässt.
Bearbeiten: Diese Frage wurde bereits bei Seltsam aus dem Speicher beantwortet Problem beim Laden eines Bildes in ein Bitmap-Objekt (die zwei am häufigsten gewählten Antworten). Es verwendet auch die Option inSampleSize
, aber mit einer kleinen Methode, um automatisch den passenden Wert zu erhalten.
Meine ursprüngliche Antwort:
Das inSampleSize
der Klasse BitmapFactory.Options
kann Ihr Problem lösen ( Ссылка ). Es funktioniert, indem man eine Bitmap mit der resultierenden Breite und Höhe 1 / inSampleSize
als das Original erstellt, wodurch der Speicherverbrauch reduziert wird (um inSampleSize
^ 2?). Sie sollten das Dokument lesen, bevor Sie es verwenden.
Beispiel:
%Vor% Aber hier funktioniert es nur für Bilder bis zu, ich denke, inSampleSize
^ 2 mal die Größe des erlaubten Speichers und wird die Qualität von kleinen Bildern reduzieren.
Der Trick wäre, das passende inSampleSize zu finden.
Ссылка deckt alle ab Sie müssen jemals über das Thema Bilder wissen, einschließlich erhalten sie von einer SD-Karte. Sie werden dort den Code finden, der unten kopiert wird:
%Vor%Tags und Links android bitmap out-of-memory mediastore