我正試圖完成一些非常簡單的事情。首先,加載我的佈局(main.xml)。然後等待1秒鐘,修改圖像,等待1秒鐘並將其修改爲第三張圖像。 (當然,我的最終目標更復雜,但我甚至無法完成這項工作)。如何在java中以我想要的方式獲得等待/睡眠狀態?
基本上,我在應用程序加載時出現黑屏。它保持這種狀態直到所有等待結束,然後顯示最終圖像。這裏是我的代碼:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageCard[0] = (ImageView)findViewById(R.id.imageView11);
Thread.sleep(1000);
ImageCard[0].setImageDrawable(getResources().getDrawable(R.drawable.secondimage));
Thread.sleep(1000);
ImageCard[0].setImageDrawable(getResources().getDrawable(R.drawable.thirdimage));
ImageCard [0]是我想改變的圖像。它加載在main.xml中,並且如果我刪除其餘代碼,則顯示正常。
如果我將睡眠時間更改爲5000,則需要10秒才能最終離開黑屏並顯示第三張圖像。這就是我知道它不只是加載緩慢,但它實際上是在等待。
這就像它沒有按順序運行。我不是java專家,所以我假設我正在做一些愚蠢的事情......
感謝您的幫助!
您的標記指出「多線程」,但您的多線程代碼顯示使用後臺線程的位置在哪裏?你讀過關於使用線程的教程嗎? –
也許有一個繪畫事件等着你放開你正在睡覺的UI線程。 –
你應該真的重新考慮你的方法。將主UI線程擱置1秒鐘,以便您可以繪製新圖片,這會導致設備在此期間無響應。用戶將無法做任何事情(除了留下你的應用程序,他們可能會這樣做,因爲他們會認爲你的應用程序「凍結」了他們的設備) – FoamyGuy