2017-08-05 2 views
0

Also habe ich eine App, die eine Münze dreht, wenn der Benutzer einen Knopf drückt. Momentan wird nur das Ergebnis angezeigt, aber ich wollte eine kleine Schleife von Kopf-Zahl-Kopf-Zahl-Kopf hinzufügen, bevor das Ergebnis angezeigt wird, um zu zeigen, dass es umgedreht wird. Ich war mit Thread.Sleep wie folgt aus:Wie zwischen zwei Bildern mit einer verzögerten Verzögerung in Java wechseln?

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! :("); 
      } 
     } 
    } 

sondern die Bildwechsel angezeigt wird, alles, was passiert ist, ist die App die Verzögerungen tut. Was habe ich vermasselt?

+0

Machen Sie dasselbe in AsyncTask –

+0

persönlich sehen, ich würde dieses Problem in Android mit einem der Animations Klassen zu lösen, als diese Innengewinde Handhabung. – PPartisan

+0

Wie @PPartisan erwähnt Animation Klassen sind gut für Ihre Anforderungen. Werfen Sie einen Blick auf https://developer.android.com/reference/android/animation/package-summary.html – Blasanka

Antwort

0

Die Verzögerung (in Millisekunden), bis das Runnable ausgeführt wird.

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

Vielen Dank für Ihre Antwort. Ich habe versucht, den Code in meine for-Schleife zu schreiben, aber ich bekomme keine Verzögerung zwischen den Bildänderungen. Irgendwelche Vorschläge? – Emma

+0

500 Millisekunden ist sehr kurz. Bitte ändere die Verzögerungszeit. Ich empfehle 5000 (5 Sek.) Freizeit – redAllocator

Verwandte Themen