我有一个程序从资源文件加载资源(通过在布局文件中设置android:src =“@ drawable / image”。
图像为800 x 1280像素。程序运行时,它在堆上分配16,384,000个字节,每个像素为16个BYTES。
我认为它应该默认为RGB8888,每个像素只使用4个字节。任何人都知道如何改变它以减少使用内存?
答案 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,但图像质量可能会下降。