我有一個「活動」三個圖像。當單擊一個圖像時,所有圖像將切換到另一個圖像。有沒有辦法讓這些開關在圖像實際改變之前有2秒延遲(即下面每個'for循環'中的2秒延遲)?我試圖用計時器來做到這一點,但是當我運行我的程序,它實際上並不對延遲:如何設置的圖像與延遲
protected void onCreate(Bundle savedInstanceState) {
image1.setOnClickListener(this);
@Override
public void onClick(View arg0)
{
do_switches();
}
private void do_switches()
{
//loop through all images and change them
for(int j=1 ;j<=3; j++)
{
final int curr2=current;
final Handler handler = new Handler();
Timer t = new Timer();
t.schedule(new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
switch(curr2){
case 1:
image1.setImageResource(ImageArray[1]);
break;
case 2:
image2.setImageResource(ImageArray[2]);
break;
case 3:
image3.setImageResource(ImageArray[3]);
break;
}
}
});
}
}, 2000);
}
}
我也只用SystemClock.sleep(2000)也試圖代替計時器,但我也沒有工作。我也嘗試設置一個線程與try/catch沒有運氣,也許我沒有正確實施它。有沒有辦法在我for循環的每次迭代中放置這個延遲? 感謝
真棒!..這個工作perfectly..thanks – Tobi 2011-05-11 00:27:24
我首先存儲圖像序列中的陣列,以改變當時我使用倒數計時器真正改變的圖像。但是當我將我的間隔設置爲少量(小於〜2000毫秒)時,它會錯過我陣列中最後的1或2個插槽。你知道這可能是什麼原因嗎? – Tobi 2011-05-18 01:37:09