Wie kann ich die Bytegröße einer Bitmap ermitteln/berechnen (nach der Decodierung mit BitmapFactory)? Ich muss wissen, wie viel Speicherplatz es belegt, weil ich Speicher-Caching/-Management in meiner App mache. (Dateigröße ist nicht genug, da dies jpg/png-Dateien sind)Bitmap-Byte-Größe nach der Decodierung?
Danke für alle Lösungen!
Update: getRowBytes * GetHeight könnte den Trick machen .. Ich werde es auf diese Weise implementieren, bis jemand etwas dagegen vorkommt.
es so versucht: original = BitmapFactory.decodeStream (. GetAssets() offen ("HD.jpg")); \t \t \t sizeOf (Original); ByteArrayOutputStream out = neues ByteArrayOutputStream(); \t \t original.compress (Bitmap.CompressFormat.WEBP, 50, aus); \t \t Bitmap decodiert = BitmapFactory.decodeStream (neuer ByteArrayInputStream (out.toByteArray())); \t \t sizeOf (decodiert); Wenn ich innerhalb der Methode debuggen, bekomme ich die gleiche Anzahl von Bytes, auch wenn das zweite Bild komprimiert ist! Irgendwelche Kommentare? – TharakaNirmana
@TharakaNirmana Eine Bitmap enthält immer das unkomprimierte Bild. Die Komprimierung wird nur verwendet, um ein Bild zum Speichern in einer Datei zu verkleinern. – Ridcully
Zeit zum Aktualisieren und Hinzufügen der Kitkat-Methode von 'getAllocationByteCount()'. Siehe http://developer.android.com/reference/android/graphics/Bitmap.html#getAllocationByteCount() –