2016-04-17 97 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中,因为我在DOC看到计时器.schedule需要一个timerTask – cryckx

+0

我试过你的解决方案,但我得到这个错误:04-18 13:57:28.280 2398-2568 /? E/AndroidRuntime:android.view.ViewRootImpl $ CalledFromWrongThreadException:只有创建视图层次结构的原始线程可以触及其视图。 – cryckx

相关问题