2016-04-17 4 views
0

私は線で構成された図を表示しようとしています。私はそれを線で表示して一時停止します。 正確な時間間隔で自分のonDrawメソッドを呼び出す必要がありますが、これを行う方法はわかりません。ハンドラを使用して待機する方法

私はwhileループで、行の座標である "start"と "end"の値を変更しようとします。

final Handler h1 = new Handler(); 
    h1.postDelayed(new Runnable() {public void run() { 
     lineView.addLineToList(new Line(start, end)); 
     h1.postDelayed(this, 1000); 
     lineView.invalidate(); 
     } 

    }, 1000); 

ただし、すべての行が同時に表示されます。

ありがとう。

答えて

0

Handler postdelayはあなたのコマンドを別の時間(ここでは1000ms)に延期するだけで、もう一度やり直すサイクルはありません。あなたの答えのための

long delay = 500; 
long period = 1000; 

Timer timer = new Timer(); 
timer.schedule(yourFunction, delay, period); 
+0

おかげで私はそのタイマードキュメントに見るので、私は、あなたがyourfunctionによって何を意味するか理解していない:あなたは、期間の時間に一つの関数を呼び出すだけで、以下のように「タイマー」を使用したい場合.scheduleはtimerTaskを受け取ります – cryckx

+0

私はあなたのソリューションを試しましたが、私はこのエラーを受け取りました:04-18 13:57:28.280 2398-2568 /? E/AndroidRuntime:android.view.ViewRootImpl $ CalledFromWrongThreadException:ビュー階層を作成した元のスレッドのみがそのビューに触れることができます。 – cryckx

関連する問題