2011-05-18 33 views
0

我試圖用一個倒數計時器如下步驟設置一個600毫秒的延遲圖片:具有定時設置圖像

protected void onCreate(Bundle savedInstanceState) { 
int order[3]; 
index=0; 
    image1.setOnClickListener(this); 

    @Override 
    public void onClick(View arg0) 
    { 
    order={2,1,3}; 

    do_switches(); 
    } 

private void do_switches() 
{ 
    new CountdownTimer(3*600, 600) { 

public void onTick(long millisUntilFinished) { 
    switch(order[index]){ 

    case 1: 

     image1.setImageResource(R.drawable.one); 
       break; 

    case 2: 

     image2.setImageResource(R.drawable.two); 
         break; 

    case 3: 
     image3.setImageResource(R.drawable.three); 
        break; 

    } 
    index++; 

} 

public void onFinish() { 

} 
    }.start(); 

} 

} 

這是一個例子,但在我實際的代碼,我在使用較大的陣列(約50尺寸)。我的問題是,倒數計時器並不總是一直走到數組中的最後一個點。有時可以工作,但有時會在達到陣列的最後一點之前停止。但是,如果我將間隔時間增加到2000毫秒,它總是有效。它肯定會進行一些處理,這會延遲這一點,但我不認爲倒計時不會僅僅因爲我減少了間隔。有人可以告訴我我可以做些什麼來確保倒數計時器在整個陣列之前不會停止,或者有更好的方法來做到這一點。

我也使用與scheduleAtFixedRate計時器嘗試,但我得到了一個錯誤說,因爲他們沒有在線程構建

請幫 感謝

回答

0

我敢肯定有我不能觸摸的觀點在一個線程是否涉及其他細節,這可能無法解決所有問題,但對於最後一點(「...無法觸及線程中的視圖...」),您需要將Runnable傳遞給Activity.runOnUiThread。在該Runnable中,執行您的圖像資源設置和其他任何會影響屏幕的內容。