我想將按鈕的背景更改爲紅色,然後在調用其他活動之前等待一秒鐘。更改按鈕的背景和睡眠
這是我的代碼:
btn1.setBackgroundColor(Color.RED);
SystemClock.sleep(1000);
startActivity(intent);
的問題是應用程序睡眠一秒鐘,開始活動,但按鈕的顏色沒有變化。我怎樣才能解決這個問題?
我想將按鈕的背景更改爲紅色,然後在調用其他活動之前等待一秒鐘。更改按鈕的背景和睡眠
這是我的代碼:
btn1.setBackgroundColor(Color.RED);
SystemClock.sleep(1000);
startActivity(intent);
的問題是應用程序睡眠一秒鐘,開始活動,但按鈕的顏色沒有變化。我怎樣才能解決這個問題?
當您使用 SystemClock.sleep(1000);
處理Looper的主線程將獲得Sleep。
然後,當它返回它首先改變顏色,然後啓動活動。這是一個接一個地完成的,所以你不能看到改變的顏色。
使用處理器postDelayed這將幫助ü運行u需要,並且也沒有被睡眠阻塞主彎針線
不,它是設置顏色,但你無法看到。我會解釋你爲什麼看不到。
顏色1秒後設置。但是你在1秒後開始新的活動,所以你無法看到顏色的變化。實際上睡眠暫停線程給定的時間。
要注意到這種效果,請嘗試下面的代碼。
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
v.setBackgroundColor(Color.RED);
SystemClock.sleep(5000); // color will set after 5 seconds
}
});
我不知道如何解決這個問題。我只是回答這個問題。
您正在設置睡眠的同一線程上的顏色,因此您的更改不可見,因爲睡眠命令導致UI凍結。
你應該設置顏色,然後產生一個新的線程,等待5秒鐘,然後再啓動其他活動。
謝謝您的回答延遲後的活動。我想嘗試一個while循環,當按鈕的顏色是紅色時會中斷,但我不知道如何檢查。如果試圖使用ColorDrawable類的getColor()方法,但eclipse說這個方法不存在。你知道另一種方法來檢查按鈕的背景顏色嗎? – user1186043 2012-02-06 12:36:21