我正在从这样的资源中加载位图:
Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image);
我想要做的是在我的绘制方法中将位图绘制到主画布之前对位图进行一些更改(因为在我的主循环中重复大量绘图时它不会改变似乎很浪费)。我正在使用以下内容对位图进行更改:
Canvas c = new Canvas(mBackground);
c.drawARGB(...); // etc
所以很自然地我得到了一个例外
java.lang.IllegalStateException: Immutable bitmap passed to Canvas constructor
所以为了避免我制作了位图的副本,以便它是可变的
Bitmap mBackground = BitmapFactory.decodeResource(res,R.drawable.image).copy(Bitmap.Config.ARGB_8888, true);
哪个避免了这个问题,但它有时会导致 OutOfMemoryExceptions,知道有什么更好的方法来实现我想要的吗?