Changer la couleur d'un Button pendant une seconde.
Bonjour :)
Le but ici est de changer la couleur du bouton "buttonEnHaut" en vert quand l'utilisateur clique dessus et de remettre la couleur par défaut au bout d'une seconde.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
@Override
public void onClick(View v) {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) buttonEnHaut.getLayoutParams();
switch (v.getId()) {
case R.id.buttonEnHaut:
buttonEnHaut.setBackgroundColor(Color.GREEN);
try {
Thread.sleep(1000);
} catch (Exception e) {
}
buttonEnHaut.setBackgroundResource(android.R.drawable.btn_default);
break;
} |
Sauf que le résultat n'est pas du tout celui attendu, voila ce que ça donne:
l'utilisateur clique une première fois: la couleur ne change pas cependant l'interface graphique du boutton reagis comme si l'utilisateur laissait son soigt appuyé pendant 1 seconde. Ensuite l'interface graphique du bouton est legerement differente des autres boutons par défault (fond gris avec degradé et petit contour)
l'utilisateur clique une deuxième fois: le bouton devient ORANGE ( :weird: ) pendant une seconde et redevient comme avant (fond gris degradé et petit contour).
les fois suivantes: idem que la deuxième fois.
Auriez vous une idée les amis ? Je vous laisse le code de l'activité complete au cas ou mais je suis a peu pret sur que le soucis ne vient pas du reste du code:
Code:
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 52
|
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;
import android.graphics.Color;
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button buttonEnHaut = null;
private Button buttonEnBas = null;
private Button buttonAGauche = null;
private Button buttonADroite = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonEnHaut = (Button) findViewById(R.id.buttonEnHaut);
buttonEnBas = (Button) findViewById(R.id.buttonEnBas);
buttonAGauche = (Button) findViewById(R.id.buttonAGauche);
buttonADroite = (Button) findViewById(R.id.buttonADroite);
buttonEnHaut.setOnClickListener(this);
buttonEnBas.setOnClickListener(this);
buttonAGauche.setOnClickListener(this);
buttonADroite.setOnClickListener(this);
}
@Override
public void onClick(View v) {
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)buttonEnHaut.getLayoutParams();
switch (v.getId()) {
case R.id.buttonEnHaut:
buttonEnHaut.setBackgroundColor(Color.GREEN);
try {
Thread.sleep(1000);
} catch (Exception e) {}
buttonEnHaut.setBackgroundResource(android.R.drawable.btn_default); //cette ligne fait tout foirer
break;
case R.id.buttonEnBas:
break;
case R.id.buttonAGauche:
break;
case R.id.buttonADroite:
break;
}
}
} |