キャンバス上に円を周期的に描画する必要がありますが、反復ごとに遅延が発生します。Thread.sleep
それで、私はそれを遅延のための方法を使うスレッドとして実現しました。
これが私のonDraw
方法です:
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
if (touching) {
paint.setStrokeWidth(STROKE_WIDTH);
paint.setColor(_color);
paint.setStyle(Paint.Style.FILL);
Thread background = new Thread(new Runnable() {
public void run() {
// TODO Auto-generated method stub
try {
while (f<=75){
Thread.sleep(100);
drawHandler.sendMessage(drawHandler.obtainMessage());
}
}
catch (InterruptedException e) {
// TODO: handle exception
Log.e("ERROR", "Thread Interrupted");
}
}
});
background.start();
}
これが私のハンドラーです:
private Handler drawHandler = new Handler() {
public void handleMessage (Message msg) {
canvas.drawCircle(x, y, f, paint);
}
};
ハンドラーでcanvasを解決できないため、このコードをコンパイルできません。ハンドラーでキャンバスオブジェクトを送信するにはどうすればよいですか?一般的に、ハンドラーでパラメーターを送信するにはどうすればよいですか?