365 votes

Comment obtenir une couleur à partir d'une chaîne de couleurs hexadécimale

J'aimerais utiliser une couleur hexadécimale telle que "#FFFF0000" pour changer la couleur d'arrière-plan d'une mise en page. Color.HSVToColor ressemble à un gagnant mais prend comme paramètre un float[] .

Suis-je proche de la solution?

674voto

jethro Points 4930

Essayez la méthode Color class:

 public static int parseColor (String colorString)
 

De la documentation Android:

Les formats pris en charge sont les suivants: #RRGGBB #AARRGGBB 'rouge', 'bleu', 'vert', 'noir', 'blanc', 'gris', 'cyan', 'magenta', 'jaune', 'lightgray' '

289voto

invisbo Points 843

Essayer:

 myLayout.setBackgroundColor(Color.parseColor("#636161"));
 

24voto

George Bailey Points 13735

Convertissez cette chaîne en int couleur pouvant être utilisée en setBackgroundColor et setTextColor

 String string = "#FFFF0000";
int color = Integer.parseInt(string.replaceFirst("^#",""), 16);
 

Le 16 signifie qu'il est hexadécimal et non votre 0-9 ordinaire. Le résultat devrait être le même que

 int color = 0xFFFF0000;
 

12voto

Opy Points 1346

Je l'utilise et cela fonctionne très bien pour moi pour définir n'importe quelle couleur que je veux.

 public static final int MY_COLOR = Color.rgb(255, 102, 153);
 

Définissez les couleurs en utilisant 0-255 pour chaque rouge, vert et bleu, puis placez MY_COLOR à la place de Color.BLUE ou Color.RED ou de toute autre couleur statique proposée par la classe Color.

Il suffit de faire une recherche Google pour le nuancier et vous pouvez trouver un graphique avec les codes RVB corrects en utilisant 0-255.

6voto

AZ_ Points 7127

Fichier XML enregistré dans res / values ​​/ colors.xml:

 <?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <color name="translucent_red">#80ff0000</color>
</resources>
 

Ce code d'application récupère la ressource couleur:

 Resources res = getResources();
int color = res.getColor(R.color.opaque_red);
 

Ce format XML applique la couleur à un attribut:

 <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/translucent_red"
    android:text="Hello"/>
 

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