2013-10-06 54 views
0

當我使用這個計時器來改變圖像,它不工作。我試圖在計時器運行時更​​改圖像。我把這個計時器放在了onCreate裏面,好嗎?使用計時器來改變圖像,但不工作

Timer timer = new Timer("MetronomeTimer", true); 
    TimerTask tone = new TimerTask() { 

     int i=0; 
     @Override 
     public void run() { 

      img1.setImageResource(Images[i]); 
      i++; 

     } 
    }; 
    timer.scheduleAtFixedRate(tone, 500, 500); 
+1

沒有,起初無法更新從工作線程UI。而不是'Timer'使用例如'Handler','runOnUiThread'或'AsyncTask.' – Sajmon

回答

0

嘗試這樣:

private Handler handler = new Handler(); 
handler.postDelayed(runnable, 100); 

private Runnable runnable = new Runnable() { 
@Override 
public void run() { 
/* do what you need to do */ 
changeImage(); 
/* and here comes the "trick" */ 
handler.postDelayed(this, 100); 
} 
}; 

changeImage可以像

void changeImage() 
{ 
    runOnUiThread(new Runnable() { 

     @Override 
     public void run() { 
      // TODO Auto-generated method stub 
      img1.setImageResource(Images[i]); 
      i++; 
     } 
    }); 
} 
+0

謝謝! 但是,這個錯誤出現在「handler.postDelayed(runnable,100);」「令牌上的語法錯誤,而不是預期的VariableDeclarator」.. – kk223

+0

確保你已經導入了正確的類。請參閱[here](http://developer.android.com/reference/android/os/Handler.html)瞭解有關類「android.os.Handler」的詳細信息 – Mehedi