Android位图为每个像素分配16个BYTES

时间:2012-11-23 21:41:30

标签: android graphics

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

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

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

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

此外,这似乎是一个非常高的图像显示在移动屏幕上,所以你也可以减小尺寸?

答案 2 :(得分:0)

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

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