我正在编写一个简单的视图,在显示下一个点之后会显示一个点。点在垂直条带上。所以我创建了一个清除条带的功能。然后在我想要点的位置画一个圆圈。代码段如下。
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,并且位置是正确的,它只是没有绘图(也没有清除)....请告知。
答案 0 :(得分:1)
您可以将画布绘制到您的onDraw
方法中。但点绘图代码使用画布m_canvas
。将画布作为参数传递给点图代码以修复它。