Android 在 onDraw 事件處理繪圖,
而 invalidate() 函數可以再一次觸發 onDraw 事件,
然後再一次進行繪圖動作,
範例, 如下:
Java 程式碼
public class helloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView( new View(this){
Paint vPaint = new Paint(); // 繪製樣式物件
private int i = 0; // 弧形角度
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
// 設定繪圖樣式
vPaint.setColor( 0xff00ffff ); // 畫筆顏色
vPaint.setAntiAlias( true ); // 反鋸齒
vPaint.setStyle( Paint.Style.STROKE );
// 繪製一個弧形
canvas.drawArc(new RectF(60, 120, 260, 320), 0, i, true, vPaint );
// 弧形角度
if( (i+=10) > 360 )
i = 0;
// 重繪, 再一次執行 onDraw 程序
invalidate();
}
});
}
}
範例結果 :