oom问题全称为out of memory (内存溢出),指在加载资源时,资源所占空间超过了应用程序分配的内存空间。
今天在做射击游戏的项目时,加载了20多张图片做了一个animationDrawable动画,预加载动画作为ImageView的background
iv_gun.setBackground(animationDrawable);
结果在一些高分辨率的机器上跑的时候,程序报出OOM错误,在加载背景动画的这一行,在网上找了很多方法,其中一个解决了问题:
大概意思就是,setBackground方法会根据分辨率的高低重新编码图片,所以有时候会导致图片的大小增大,导致内存溢出