2010-07-26 62 views
0

我无法在代码中延迟一段时间后显示矩形。 这是我在做什么画布中的Thread.sleep

DashPathEffect dashPath = new DashPathEffect(new float [] {1,0},1);

 paint.setPathEffect(dashPath); 
     paint.setStrokeWidth(300); 
     final int size =300; 

canvas.drawLine(0,size,100,size,paint);

尝试{

  Thread.sleep(4000, 0); 
     } catch (InterruptedException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

canvas.drawLine(110,大小,200,大小,油漆);


我不能注意到这两个rectagles之间的任何延迟在手机屏幕上。两者同时出现。我所要做的就是,一个接一个地画出矩形,之间有一些延迟。这段代码实际上是在等待4秒钟,然后同时显示两个矩形。谢谢。

回答

1

你永远不应该睡在UI线程中。如您所见,这会导致整个程序锁定并等待睡眠完成。

相反,在这种情况下,您可能想使用处理程序进行研究。有关如何执行此操作的完整说明,请参阅timed ui-updates

+0

应该说,Google的建议其实就是睡眠触摸动作事件(仅20ms左右),以处理触摸事件的昂贵程度。来自开发者谷歌组的相关主题: http://groups.google.com/group/android-developers/browse_thread/thread/39eea4d7f6e6dfca/b50e9be8f47db505?q&pli=1 – Maximus 2010-07-26 21:40:37

+0

好吧,99.9%的时间,除非你真的知道什么你正在做,并有一个很好的解释,睡在UI线程是一个坏主意。 – 2010-07-26 21:54:28

+0

是......同意:) – Maximus 2010-07-27 06:09:02