2

我的资产文件夹中有 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;
}
4

0 回答 0