1

ドットを表示する単純なビューを作成しています。何らかのアクションを行った後、次のドットを表示します。ドットは縦縞にあります。そこで、ストリップをクリアする関数を作成します。次に、ドットが必要な位置に円を描きます。コード セグメントは次のとおりです。

private void clear_strip(){
    paint.setColor(Color.BLACK);
    paint.setStyle(Paint.Style.FILL_AND_STROKE);
    m_canvas.drawRect( 0, 0,width/8, height, paint);
    paint.setColor(Color.GREEN);
}

private void set_dot(){
    clear_strip();
    m_canvas.drawCircle(width/10, (int) (font_height*(scoreboard.current_batter_position()+0.5))/1, font_height/4, paint);
}

@Override
protected void onDraw(Canvas canvas) {
    set_dot();
    canvas.drawBitmap(m_bitmap, 0, 0, paint);
}

しかし、ドットの1つが更新されていません。古いドットを保持し、そのドットをスキップしてから、次のドットに移動します。drawCircle 呼び出しの直前に位置を logcat に出力しようとしましたが、位置は正しいです。描画していないだけです (クリアもしていません)...アドバイスしてください。

4

1 に答える 1

1

メソッドに渡された描画先のキャンバスを取得しますonDraw。ただし、ポイント描画コードは canvas を使用しますm_canvas。キャンバスをパラメーターとしてドット描画コードに渡して修正します。

于 2012-12-23T07:28:34.497 に答える