我有一个程序从资源文件加载资源(通过在布局文件中设置 android:src="@drawable/image"。
图像为 800 x 1280 像素。当程序运行时,它会在堆上分配 16,384,000 字节,即每像素 16 个字节。
我假设它应该默认为 RGB8888,每像素仅使用 4 个字节。有人知道我如何更改它以使用更少的内存吗?
您的图像可能存储在不合适的文件夹中。如果您在低分辨率文件夹中有高分辨率图像,假设图像为 800 x 1280,并且您将其存储在可绘制或可绘制的 hdpi 中,Android 会放大它们以匹配 xhdpi(尽管它们已经在 xhdpi 中,可以这么说)。缩放后的图像占用更多内存。
解决方案,将它们放在可绘制的xhdpi中。
您可以使用BitmapFactory,Options和inSampleSize导入它们以减少内存占用。
此外,这似乎是在移动屏幕上显示的高分辨率图像,因此您也可以减小尺寸?
查看有关每像素字节数的文档:http://developer.android.com/reference/android/graphics/Bitmap.Config.html
您可以尝试使用Color.RGB_565,但图像可能会降低质量。