2

私は Android 初心者で、Android 用の囲碁ゲーム アプリケーションを開発しています。ボードに 1 つの石を描くのに問題があります。
これが私の 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、背景が上に描画されるため、背景のみが表示される背景(他のビューの場合もあります)を使用すると、いくつかの問題があることはわかっています。

背景色をで設定する代わりに、でsetBackgroundColor(Color.WHITE)開始する必要があります。onDraw()canvas.drawColor(Color.WHITE)

于 2012-01-03T09:36:48.723 に答える