1

我有一个从资源文件加载资源的程序(通过在布局文件中设置 android:src="@drawable/image" 。

图像为 800 x 1280 像素。当程序运行时,它会在堆上分配 16,384,000 字节,即每像素 16 字节。

我假设它应该默认为每个像素只使用 4 个字节的 RGB8888。任何人都知道我可以如何改变它以使用更少的内存?

4

3 回答 3

3

您的图像可能存储在不合适的文件夹中。如果您在低分辨率文件夹中有高分辨率图像,假设图像为 800 x 1280,并且您将其存储在 drawable 或 drawable-hdpi 中,Android 会将它们放大以匹配 xhdpi(尽管它们已经在 xhdpi 中,可以这么说)。缩放后的图像占用更多内存。

解决方案,将它们放在 drawable-xhdpi 中。

于 2012-11-23T21:56:42.470 回答
0

您可以使用 BitmapFactory、Options 和 inSampleSize 导入它们以减少内存占用。

此外,这似乎是在移动屏幕上显示的非常高分辨率的图像,因此您还可以减小尺寸吗?

于 2012-11-23T21:59:03.203 回答
0

检查有关每像素字节数的文档:http: //developer.android.com/reference/android/graphics/Bitmap.Config.html

您可以尝试使用 Color.RGB_565,但图像可能会丢失质量。

于 2013-05-13T18:34:09.427 回答