android,xhdpi - 堆

apt*_*typ 2 memory android memory-management image drawable

我在drawable-xhdpi中有15个图像,每个都是800x800,在drawable-hdpi中我有相同的图像但600x600,当我在设备上运行hdpi分辨率的应用程序时,堆大小约为3mb,但是当我在设备上运行它时使用xhdpi分辨率,堆大小超过40mb,我得到了outofmemory?怎么了?图像太大了吗?

堆大小:ldpi:~3mb mdpi:~3mb hdpi:~3mb xhdpi:~40mb

以这种方式加载图像:

 b1 = BitmapFactory.decodeResource(getResources(), R.drawable.image);
 imageview.setImageBitmap(b1);

then in OnBackPressed() b1.recycle()
Run Code Online (Sandbox Code Playgroud)

dmo*_*mon 5

之前已经多次询问过......加载时用于位图的实际内存是H x W x 4.800*800*4*15 = 38 MB.您永远不应该同时加载所有15个图像.由于它们大小与屏幕大小相同,因此在这种情况下重新采样没有意义,您只需要弄清楚如何避免同时加载所有这些.