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);
}

但其中一个点只是没有更新。它会保留旧点,跳过那个点,然后移动到下一个点。我试图在 drawCircle 调用之前将位置打印到 logcat,并且位置是正确的,它只是没有绘制(也没有清除)......请指教。

4

1 回答 1

1

你得到一个画布来绘制传入你的onDraw方法。但是点绘图代码使用 canvas m_canvas。将画布作为参数传递给您的点绘图代码以解决该问题。

于 2012-12-23T07:28:34.497 回答