我的资产文件夹中有 newgame .txt 文件。我在方法的字符数组(cboard)中读取了这个文件loadboard()
。然后根据数组中的值cboard
填充Pboard
数组(Pieces 数组,逻辑数组)和 bmp 数组(位图数组,物理板)fillboard()
。我有另一个populate()
在画布上绘制位图图像的功能。我updateBoard()
已经更新了物理阵列 (bmp) 和逻辑阵列 ( Pboard
)。在调用updateBoard()
我的逻辑数组Pboard
和物理数组后bmp
更新但是当我在画布上绘制它时它具有旧配置。这是我的loadboard(),fillboard(),populate
功能调用。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
// TODO Auto-generated method stub
// super.onMeasure(widthMeasureSpec, heightMeasureSpec);
width=View.MeasureSpec.getSize(widthMeasureSpec);
height=View.MeasureSpec.getSize(heightMeasureSpec);
setMeasuredDimension(width, height);`
b=Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
c=new Canvas(b);
loadboard();
fillBoard();
calculateLinePlacement();
drawBoard();
// method draw the board and bitmap images ( call populate()).
}
在updateBoard()
我调用函数之后invalidate()
;
编辑1:
以下是updateBoard()
方法(从commnet复制):
public void updateBoard(int sr, int sc, int er, int ec) {
Pboard[sr][sc] = new Empty(sr, sc, -3, "empty", board);
Pboard[er][ec] = selectedp;
Bitmap img = bmp[sr][sc];
bmp[sr][sc] = null;
bmp[er][ec] = null;
bmp[er][ec] = img;
}