public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.rollDice:
Random ranNum = new Random();
int number = ranNum.nextInt(6) + 1;
diceNum.setText(""+number);
sum = sum + number;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
int value =(Integer)buttons[i][j].getTag();
if(value==sum){
inew=i;
jnew=j;
buttons[inew][jnew].setBackgroundColor(Color.BLACK);
//I want to insert a delay here
buttons[inew][jnew].setBackgroundColor(Color.WHITE);
break;
}
}
}
break;
}
}
Ich möchte eine Verzögerung zwischen dem Befehl zwischen dem Ändern des Hintergrunds einstellen. Ich habe versucht, einen Thread-Timer zu verwenden und habe Run and Catch verwendet. Aber es funktioniert nicht. Ich habe es versucht
Thread timer = new Thread() {
public void run(){
try {
buttons[inew][jnew].setBackgroundColor(Color.BLACK);
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
timer.start();
buttons[inew][jnew].setBackgroundColor(Color.WHITE);
Aber es wird nur schwarz.
Sie können verwenden,
CountDownTimer
was viel effizienter ist als jede andere veröffentlichte Lösung. Mit dieseronTick(long)
Methode können Sie auch regelmäßige Benachrichtigungen in Intervallen auf dem Weg erstellenSchauen Sie sich dieses Beispiel an, das einen Countdown von 30 Sekunden zeigt
quelle
Wenn Sie in Ihrer App häufig Verzögerung verwenden, verwenden Sie diese Dienstprogrammklasse
Verwendung:
quelle
Mit der
Thread.sleep(millis)
Methode.quelle
Wenn Sie in regelmäßigen Zeitabständen etwas in der Benutzeroberfläche tun möchten, empfiehlt es sich, CountDownTimer zu verwenden:
quelle
Handler Antwort in Kotlin:
1 - Erstellen Sie eine Funktion der obersten Ebene in einer Datei (z. B. eine Datei, die alle Funktionen der obersten Ebene enthält):
2 - Rufen Sie es dann an einer beliebigen Stelle an:
quelle
Sie können dies verwenden:
und für die Verzögerung selbst fügen Sie hinzu:
wo die
delay
Variable in Millisekunden ist; Zum Beispieldelay
für eine Verzögerung von 5 Sekunden auf 5000 eingestellt .quelle
Hier ist ein Beispiel, in dem ich das Hintergrundbild mit einer Alpha-Überblendungsverzögerung von 2 Sekunden in beide Richtungen von einem zum anderen ändere - 2s Ausblenden des Originalbilds in 2s Ausblenden in das 2. Bild.
quelle