2

我是一名 Android 新手,正在为 Android 开发围棋游戏应用程序。我在板上画单石时遇到问题。
这是我的 onDraw() 方法。

public void onDraw(Canvas canvas) {
   //drawing a board
   //...
   //...

     canvas.drawBitmap(stone_image, stoneX - (stone_image.getWidth() / 2), stoneY
     - (stone_image.getHeight() / 2),paint);
}

我有一个 onTouch() 方法:

public boolean onTouchEvent(MotionEvent event) {
    stoneX = (int) event.getX();
    stoneY = (int) event.getY();
    return true;
}

关键是,当我使用此方法在类构造函数中设置背景颜色时:

setBackgroundColor(Color.WHITE);

touchEvent后应用程序无法在板上绘制石头,但是当我不设置背景颜色时,应用程序完美地绘制了石头。
PS 属性stoneX、stoneY 已正确定义和初始化。

4

1 回答 1

2

我不知道您使用的是什么视图,但我知道在使用SurfaceView带有背景的 a 时存在一些问题(其他视图也可能是这种情况?)背景绘制在顶部,因此您只能获得背景。

而不是用 设置背景颜色setBackgroundColor(Color.WHITE),你应该onDraw()canvas.drawColor(Color.WHITE).

于 2012-01-03T09:36:48.723 回答