2017-08-05 37 views
0

所以我有一個應用程序,當用戶按下按鈕時可以翻轉硬幣。目前它只是顯示結果,但我想在顯示結果之前添加一個小尾巴頭 - 尾巴頭,以顯示它正在翻轉。我用了Thread.Sleep這樣的:如何在Java中定時延遲兩個圖像之間的交替?

public void flip(){ 
     for(int i = 0; i < 5; i++){ 
      coin.setImageResource(R.drawable.heads); 
      try { 
       Thread.sleep(500); 
      } catch (InterruptedException ex) { 
       System.out.println("Error! :("); 
      } 
      coin.setImageResource(R.drawable.tails); 
      try { 
       Thread.sleep(500); 
      } catch (InterruptedException ex) { 
       System.out.println("Error! :("); 
      } 
     } 
    } 

但不是顯示圖像的變化,所有已經發生的是應用程序在做延遲。我搞砸了什麼?

+0

做相同的AsyncTask –

+0

就個人而言,我想看看解決使用中的Android動畫類中的一個這個問題,不是處理這裏面的線程。 – PPartisan

+0

正如@PPartisan所提到的動畫類對你的要求很好。看看https://developer.android.com/reference/android/animation/package-summary.html – Blasanka

回答

0

直到Runnable將被執行的延遲(以毫秒爲單位)。

final Handler handler = new Handler(); 
     coin.setImageResource(R.drawable.heads); 
     handler.postDelayed(new Runnable() { 
      @Override 
      public void run() { 
     coin.setImageResource(R.drawable.tails); 
      } 
     }, 500); // milliseconds 
+0

感謝您的迴應。我試圖把你的代碼放在我的for循環中,但是我沒有在圖像變化之間得到延遲。有什麼建議麼? – Emma

+0

500毫秒很短。請更改延遲時間。我建議5000(5秒)的休息時間 – redAllocator