2016-04-02 7 views
0

Ich möchte eine Methode aufrufen, nachdem ich einWie rufe ich eine Methode erst nach einer Animation in Java auf?

Hier mein Code Würfel animiert ist:

//animation: 

public void rollDice(){ 

    diceImageView.animate() 
      .rotation(1800) 
      .setDuration(2000); 

//method I want to call: 

    checkNumber(); 

} 

Als ich rollDice() aufrufen, können Sie die Animation nicht sehen, es springt nur die Animation und ruft die Methode checkNumber().

Wie warte ich, bis die Animation beendet ist, um die Methode checkNumber() aufzurufen?

+0

Was ist das für ein Klassenobjekt? ** diceImageView ** ???? –

+0

Verwenden/bereitstellen + Verwenden Sie einen Rückruf, der nach Abschluss der Animation ausgelöst wird. – m02ph3u5

Antwort

1

Nun, das ist normalerweise mit Rückrufen getan, wie ich denke, dass diese Animation in einem separaten Thread läuft. Was die API dieser Animation tun sollen, ist eine Callback-Schnittstelle deklariert:

public interface AnimationCallback { 
    public void onAnimationDone(); 
} 

und ein Verfahren in seiner API hinzufügen, die diese Klasse mit Instanz registriert und dann nach der Animation erhalten die Rückrufe genannt. Wenn es nicht Ihre Animations-API ist, müssen Sie möglicherweise versuchen, den aktuellen Thread für die Dauer dieser Animation zu schließen, was mir jedoch sehr übel vorkommt.

Verwandte Themen