Buttonfarbe ständig wechseln

I

inf1948

Neues Mitglied
0
Hallo liebe Community, (sry Neuling)

ich habe lange gesucht, allerdings denke ich mir fehlt einfach das Schlüsselwort oder es gibt nicht genügend Themen hierzu. Deshalb würde ich das gerne hier kurz als Frage stellen:

Was möchte ich erreichen?

Ich habe 2 Buttons (btn1 und btn2) und ich möchte, dass die sekundlich die Farben wechseln, und das ganze ständig tun.

private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@override
public void run() {

btn2.setBackgroundResource(android.R.drawable.btn_default); // btn2 wird Default
btn1.setBackgroundColor(Color.YELLOW); // btn1 wird gelb

// hier müsst eigentlich etwas hin, was kurz pause macht.

btn1.setBackgroundResource(android.R.drawable.btn_default); // btn1 wird wieder Default
btn2.setBackgroundColor(Color.YELLOW); //btn2 wird gelb.

handler.postDelayed(runnable, 200);
}
}

Also, das ganze funktioniert so natürlich nicht. Ich möchte das UI während dem ständigen Farbwechseln nicht blockieren! Meine einzige Idee wäre ein Thread. Was meint ihr, wie könnte man das am einfachsten realisieren?
 
Hallo inf,

Grundsätzlich musst du sowas in einen Thread einbetten.
Schau dir mal diesen Thread hier an
Viewelemente neu zeichnen

Wenn du dann noch fragen hast kannst du dich hier melden
 
Hallo inf1948,

der Ansatz war schon richtig. In Deinem Handler fehlt nur eine Weiche (if-Abfrage).

Code:
private AtomicBoolean colorFlag = new AtomicBoolean(true);

private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@override
public void run() {
if (colorFlag.get()) {
btn2.setBackgroundResource(android.R.drawable.btn_default); // btn2 wird Default
btn1.setBackgroundColor(Color.YELLOW); // btn1 wird gelb
colorflag.set(false);
} else {

btn1.setBackgroundResource(android.R.drawable.btn_default); // btn1 wird wieder Default
btn2.setBackgroundColor(Color.YELLOW); //btn2 wird gelb.
colorFlag.set(true);
}
}
}


handler.postDelayed(runnable, 200);

Oder du benutzt so etwas wie ein Timer.
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
337
swa00
swa00
MES
Antworten
10
Aufrufe
820
MES
MES
C
Antworten
8
Aufrufe
1.127
swa00
swa00
Zurück
Oben Unten