当我尝试加载新地图时,我的loadMap()方法会生成canvas.throwIfRecycled异常。
当我开始游戏时,初始地图加载并正常工作,
它只有当我尝试加载一个新的地图,我得到例外..
我如何“重置”画布和我用来绘制的位图,所以我可以重新开始使用它们?
这是我用来创建和绘制地图的内容:
picDest = Bitmap.createBitmap(width*tileSize, height*tileSize, Bitmap.Config.RGB_565);
canvas = new Canvas(picDest);
for (int y = 0; y < height; y++) {
for (int x = 0; x < width; x++) {
// process tile stuffs here ...
/*
col = ....:
row = ....;
*/
pic[x][y]= Bitmap.createBitmap(sheet, col*tileSize, row*tileSize, tileSize, tileSize);
canvas.drawBitmap(pic[x][y],x*tileSize,y*tileSize,bitmPaint);
}
}
一旦我创建并使用了picDest和canvas,这是基本的
当我想要加载新地图时,我无法想象如何重置所有内容..
TNX
答案 0 :(得分:0)
如果你调用invalidate();它会重绘(因此重新设置它,并遵循任何新的指示来绘制任何东西)。
答案 1 :(得分:0)
之前我遇到过这样的问题,我通过添加检查器解决了这个问题
if(this.backgroundImage!=null)
错误增加,因为将绘制的位图为空。