Android画布未更新或无效
我的资产文件夹中有newgame.txt文件。我在Android画布未更新或无效,android,canvas,Android,Canvas,我的资产文件夹中有newgame.txt文件。我在loadboard()方法的字符数组(cboard)中读取了这个文件。然后根据cboardarray中的值填充Pboardarray(碎片数组、逻辑数组)和fillboard()中的bmp数组(位图数组、物理板)。我有另一个函数populate(),它在画布上绘制位图图像。我已经更新了物理数组(bmp)和逻辑数组(Pboard)。调用updateBoard()my logical arrayPboard和physical arraybmp后会更新
loadboard()方法的字符数组(cboard)中读取了这个文件。然后根据cboard
array中的值填充Pboard
array(碎片数组、逻辑数组)和fillboard()中的bmp数组(位图数组、物理板)。我有另一个函数populate()
,它在画布上绘制位图图像。我已经更新了物理数组(bmp)和逻辑数组(Pboard
)。调用updateBoard()
my logical arrayPboard
和physical arraybmp
后会更新,但当我在画布上绘制它时,它具有旧的配置。下面是我对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复制):
您从哪里调用updateBoard()
方法?@Praful Bhatnagar。。我在ontouchevent中调用updateBoard(),然后调用这个.invalidate()。。。我的位图数组(bmp)和块数组(Pboard)都已更新,但未在画布上绘制..请尝试postInvalidate()…我已尝试postInvalidate()…是否可以显示更多代码onDraw()
和updateBoard()方法。。
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;
}