在使用android自带的canvas做游戏(2D)的时候,当加载的图片过多的时候,会遇到内存溢出问题。
图片的内存溢出当然会用到:bitmap.recycle();
注意:
1,此图片并不是立即就回收的,它就好像Java的回收机制一样,标记该回收资源;
2,某一成员变量使用了该方法后如果在使用它画图,就会出现错误,提示该bitmap不存在( use a recycled bitmap );因此在使用大量类似的bitmap的时候,可以使用集合,对集合中的资源先标记释放(bitmap.recycle()),然后清空集合;
3,在android中将成员变量赋Null,该对象并不会因此而释放资源;
4,BitmapFactory.decodeFile(path);方法实际上是在内存中创建了一个bitmap对象,因此在多次刷新的方法中一定不要使用该方法,否则一定会出现内存溢出问题;
5,在除了使用图片方面外,也可以从美术给的图片着手,对图片做一些要求。比如,图片中尽量不要有多余的透明的部分,多张零碎的小图拼成一张大图片(图片尺寸不宜超过1024×1024)等等。