Làm cách nào để xác định/tính kích thước byte của bitmap (sau khi giải mã bằng BitmapFactory)? Tôi cần phải biết bao nhiêu không gian bộ nhớ nó chiếm, bởi vì tôi đang làm bộ nhớ đệm/quản lý trong ứng dụng của tôi. (kích thước tệp không đủ, vì đây là các tệp jpg/png)Kích thước byte bitmap sau khi giải mã?
Cảm ơn mọi giải pháp!
Cập nhật: getRowBytes * getHeight có thể thực hiện thủ thuật .. Tôi sẽ thực hiện theo cách này cho đến khi có ai đó đưa ra điều gì đó chống lại nó.
thử nó như thế này: gốc = BitmapFactory.decodeStream (. GetAssets() mở ("hd.jpg")); \t \t \t sizeOf (bản gốc); ByteArrayOutputStream out = new ByteArrayOutputStream(); \t \t original.compress (Bitmap.CompressFormat.WEBP, 50, ra); \t \t Bitmap decoded = BitmapFactory.decodeStream (ByteArrayInputStream mới (out.toByteArray())); \t \t sizeOf (giải mã); Khi tôi gỡ lỗi bên trong phương thức của bạn, tôi nhận được cùng số byte ngay cả khi hình ảnh thứ hai được nén! Có ý kiến gì không? – TharakaNirmana
@TharakaNirmana Một Bitmap luôn chứa hình ảnh không nén. Nén chỉ được sử dụng để thu nhỏ hình ảnh để lưu vào một tệp. – Ridcully
thời gian để cập nhật và thêm phương thức kitkat của 'getAllocationByteCount()'. Xem http://developer.android.com/reference/android/graphics/Bitmap.html#getAllocationByteCount() –