Color

 

Dans les fichiers de ressources ou dans votre code, vous pouvez définir le code de la couleur directement, via la classe Color, mais ce n'est pas forcément la meilleure solution !

Le fichier de ressource XML colors sous Android permet de définir des couleurs et de les centraliser dans un seul fichier. Toujours pour la même raison, il est plus simple de modifier un fichier que de parcourir tous vos sources pour changer une couleur !

Il est localisé par défaut sous res/values et se nomme colors.xml. Son contenu est principalement le suivant:

<color name="nom_de_la_couleur">#Valeur_des_composantes_de_la_couleur</color>

 

Exemple de lignes:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<color name="rougeRGB">#F00</color>

<color name="rougeAARRGGBB">#FFFF0000</color>

<color name="rougeTranslucide">#80FF0000</color>

</resources>

Le format des couleurs pourra être le suivant:

#RGB
#RRGGBB
#ARGB
#AARRGGBB

 

Des explications sur la signification du ARGB par ici

 

Pour accéder à la ressource dans votre code, vous pourrez utiliser quelque chose comme:

Integer rvb= getResources().getInteger(R.color.rougeRGB);

ou mieux adaptée: int rvb = getResources().getColor(R.color.rougeRGB);

 

Là encore, certaines méthodes peuvent travailler directement avec la ressource. Par exemple avec le builder de Notification pour paramétrer la couleur de la led:

builderNotification.setLights (R.color.rougeAARRGGBB, 1000, 200);

 

Puis, pourquoi pas, utiliser la classe Color pour déterminer les composantes rouge, vert ou bleu ou la convertir dans un autre encodage...

Ou utiliser cette couleur directement pour dessiner !

 

Faire de même directement dans un layout:"@color/nomcouleur" ou nomcouleur est le nom de la couleur dans le fichier de ressources des couleurs.

Exemple:

[...]

<TextView

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@color/rougeAARRGGBB"
android:text="HelloWorld"/>

[...]