我在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()发布于 2012-10-23 05:12:37
这个问题以前已经被问过很多次了。加载位图时使用的实际内存是H x W x 4。800 * 800 *4* 15 =38MB。您不应该同时加载所有15个图像。因为它们的大小和屏幕差不多,所以重采样在这种情况下没有意义,你只需要弄清楚如何避免同时加载所有的重采样。
https://stackoverflow.com/questions/13019706
复制相似问题