android - 解码后的位图字节大小?

标签 android bitmap

如何确定/计算位图的字节大小(使用 BitmapFactory 解码后)? 我需要知道它占用了多少内存空间,因为我正在我的应用程序中进行内存缓存/管理。 (文件大小不够,因为这些是 jpg/png 文件)

感谢您的任何解决方案!

更新:getRowBytes * getHeight 可能会奏效。我会以这种方式实现它,直到有人提出反对意见为止。

最佳答案

getRowBytes() * getHeight() 对我来说似乎工作正常。

更新我〜2岁的答案: 由于 API 级别 12 位图有一种直接查询字节大小的方法: http://developer.android.com/reference/android/graphics/Bitmap.html#getByteCount%28%29

----示例代码

    @TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
    protected int sizeOf(Bitmap data) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR1) {
            return data.getRowBytes() * data.getHeight();
        } else {
            return data.getByteCount();
        }
    }

关于android - 解码后的位图字节大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2407565/

相关文章:

java - ANR 输入调度在 Android 4.4 上超时

c# - 当创建大量位图图像并将其保存为每像素图像一位时,物理内存使用异常

c++ - Windows api获取客户端dc位图大小

android - 如何在不更改版本代码的情况下在 Android Market 上更新我的应用程序

android - 主/从流程中的操作栏菜单项

android - 将非 Activity 类添加到 Dagger 2 Graph Android

android - 如何使用 FTPClient 将图片上传到 FTP?

java - 从文件路径将位图设置为 imageview 不起作用

c++ - BMP 文件格式无法正确读取?

android - ShareCompat.IntentBuilder : Intent. 数据与收件人混合