Bonjour !
J'aimerais tout simplement faire une suite de modification de boutons pour faire comme une animation.
En fait j'ai 4 boutons et j'aimerais qu'ils s'illuminent les un après les autres dans un ordre aléatoire (Après avoir cliquer sur un bouton de lancement). Pour ça j'ai crée un while qui tire à chaque fois un chiffre aléatoire et qui selon le chiffre, anime tel ou tel bouton en le rendant blanc pendant un certains temps, puis retienne la séquence dans une ArrayList().
Je suis débutant et pour moi le code devrait fonctionner mais en réalité j'ai l'impression qu'il gère tout le while en interne et n'effectue la totalité des modifications qu'à la toute fin, ce qui fait qu'on ne voit absolument rien à l'écran puisque les boutons reprennent tous leur état initiale. Je suppose qu'en revanche l'ArrayList() est bien remplie mais je sais pas comment l'afficher et n'ai pas encore chercher (Mais ce n'est pas le problème ^^)
Savez-vous quelles modifications je pourrais faire pour que l'application réagisse comme je le voudrait tout en gardant un code assez simple ?
C'est peut-être juste une petite erreur que j'ai faite ou alors ce n'est peut-être pas possible de cette façon ?
Merci par avance, voici mon morceau de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 public void Lancer(View v){ ArrayList<Integer> la_serie = new ArrayList<>(); Button boutonRouge = findViewById(R.id.rouge); Button boutonBleu = findViewById(R.id.bleu); Button boutonVert = findViewById(R.id.vert); Button boutonJaune = findViewById(R.id.jaune); Integer i = 0; Random alea = new Random(); while(i<7) { sleep(500); Integer j = alea.nextInt(4); switch (j) { case 0: boutonRouge.setBackgroundResource(R.drawable.custom_blanc); sleep(200); boutonRouge.setBackgroundResource(R.drawable.custom_rouge); la_serie.add(0); break; case 1: boutonBleu.setBackgroundResource(R.drawable.custom_blanc); sleep(200); boutonBleu.setBackgroundResource(R.drawable.custom_bleu); la_serie.add(1); break; case 2: boutonVert.setBackgroundResource(R.drawable.custom_blanc); sleep(200); boutonVert.setBackgroundResource(R.drawable.custom_vert); la_serie.add(2); break; case 3: boutonJaune.setBackgroundResource(R.drawable.custom_blanc); sleep(200); boutonJaune.setBackgroundResource(R.drawable.custom_jaune); la_serie.add(3); break; } i=i+1; } } }
Partager