为什么我的内存不足?

Jak*_*ake 1 java android bitmap

我有一个300 x 355的图像,大小只有50 kb.我试图用下面的代码解码它:

Bitmap bm = BitmapFactory.decodeResource(getResources(), drawableId)
    .copy(Bitmap.Config.ARGB_8888, true);
Run Code Online (Sandbox Code Playgroud)

根据logcat尝试分配10674000字节.为什么这么多?图像只有50 kb.

Dav*_*arl 6

300 x 355 = 106500像素.

每像素4个字节,即426KB,更接近LogCat报告的分配.

.copy()代码中的命令会将内存加倍到852KB,稍微接近报告的10.6MB.

您报告的50KB数字可能是.jpg或.png文件的压缩大小,而不是BitmapAndroid使用的未压缩大小.