2010-07-26 30 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