199 votes

Comment définir la couleur d’arrière-plan d’une vue

Je suis en train de définir la couleur d’arrière-plan d’un affichage (dans ce cas un bouton).

J’utilise ce code :

Il force le bouton à disparaître de l’écran. Que suis-je, je fais de mal, et ce qui est la bonne façon de changer le fond couleur sur n’importe quel affichage ?

Merci.

300voto

rainhut Points 1176

Vous avez fait votre bouton transparent. Le premier octet est l’alpha.

Essayez``

153voto

EddieB Points 2646

Lorsque vous appelez setBackgoundColor il écrase/supprime toute ressource de fond existantes, y compris les frontières, rembourrage, coins, etc.. Ce que vous voulez faire est de changer la couleur de la ressource de contexte existant...

Expérimenter avec PorterDuff.Mode.* pour des effets différents.

144voto

Elenasys Points 23268

Plusieurs choix à faire...

Arrière-plan vert:

v.setBackgroundColor(0x00FF00); 
v.invalidate();

Arrière-plan vert avec Alpha:

v.setBackgroundColor(0xFF00FF00); 
v.invalidate();

Arrière-plan vert avec de la Couleur.VERT constant:

v.setBackgroundColor(Color.GREEN); 
v.invalidate();

Arrière-plan vert de la définition de Colors.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>     
    <color name="myGreen">#00FF00</color> 
    <color name="myGreenWithAlpha">#FF00FF00</color> 
</resources>

et à l'aide de:

v.setBackgroundColor(getResources().getColor(R.color.myGreen));
v.invalidate()

ou

v.setBackgroundColor(getResources().getColor(R.color.myGreenWithAlpha));
v.invalidate()

40voto

Vipul Patel Points 102

Vous pouvez définir la couleur hex à n’importe quelle ressource avec :

16voto

malte kosian Points 121
<pre><code></code><p>Daos n'attribuez pas le bouton vert. Il rend le bouton totalement invisible. Explication : la valeur hexadécimale de la couleur est faux. Avec une valeur Alpha de zéro, la couleur doit être invisible. La valeur hexadécimale correcte est 0xFF00FF00 pour une opacité complète verte. N’importe quelle valeur Alpha entre 00 et FF provoquerait la transparence.</p></pre>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X