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的位置,並且位置是正確的,它只是沒有繪製(也沒有清除)....請指教。
其實m_bitmap與m_canvas關聯。我發現了這個問題。這是一個邏輯問題,我沒有更新那個點上的特定視圖......所以 – user1783960