Je voudrais savoir comment définir la couleur du bouton par programme?
Button11.setBackgroundColor(R.color.red);
Merci!!
R.color.red
est un identifiant (qui est aussi une int
), mais n'est pas une couleur.
Utilisez plutôt l'un des éléments suivants:
// If you're in an activity:
Button11.setBackgroundColor(getResources().getColor(R.color.red));
// OR, if you're not:
Button11.setBackgroundColor(Button11.getContext().getResources().getColor(R.color.red));
Ou bien:
Button11.setBackgroundColor(Color.RED); // From Android.graphics.Color
Ou, pour plus de compétences professionnelles:
Button11.setBackgroundColor(0xFFFF0000); // 0xAARRGGBB
Vieux fil, mais appris quelque chose de nouveau, espérons que cela pourra aider quelqu'un.
Si vous souhaitez modifier la couleur d'arrière-plan tout en conservant d'autres styles, la procédure ci-dessous peut vous aider.
button.getBackground().setColorFilter(ContextCompat.getColor(this, R.color.colorAccent), PorterDuff.Mode.MULTIPLY);
Vous pouvez définir la couleur souhaitée sur le bouton par programme, comme suit:
Button11.setBackgroundColor(Android.Graphics.Color.parseColor("#738b28"));
Aussi, vous pouvez donner la couleur du texte pour un bouton comme:
Button11.setTextColor(Android.Graphics.Color.parseColor("#FFFFFF"));
Pour ne pas changer la taille du bouton lors du réglage de la couleur de fond:
button.getBackground().setColorFilter(button.getContext().getResources().getColor(R.color.colorAccent), PorterDuff.Mode.MULTIPLY);
cela n'a pas changé la taille du bouton et fonctionne également avec les anciennes versions d'Android.
J'ai constaté qu'Android Studio m'avertit que getColor()
est obsolète lorsque j'essaie de le faire:
Button11.setBackgroundColor(getResources().getColor(R.color.red))
J'ai donc trouvé que la méthode ci-dessous était la solution simple et actualisée:
Button11.setBackgroundColor(ContextCompat.getColor(context, R.color.red))
Vous voulez éviter de coder en dur dans l'argument de couleur, car il est considéré comme un style de code incorrect.
Edit: Après avoir utilisé setBackgroundColor()
avec mon propre bouton, j'ai constaté que le remplissage du bouton interne s’est développé. Je ne pouvais pas trouver le moyen de le changer pour que la hauteur et la largeur soient définies sur "wrap_content". Peut-être que c'est un bug.
button.setBackgroundColor(getResources().getColor(R.color.red);
Définit la couleur de fond pour cette vue . Paramètres: colorera la couleur de fond
R.color.red
est une référence générée lors de la compilation dans gen.