Comment définir la couleur du texte de TextView dans le code?

En XML, nous pouvons définir une couleur de texte par l’atsortingbut textColor , comme android:textColor="#FF0000" . Mais comment puis-je le changer en codant?

J’ai essayé quelque chose comme:

 holder.text.setTextColor(R.color.Red); 

holder est juste une classe et le text est de type TextView . Le rouge est une valeur RVB (# FF0000) définie dans les chaînes.

Mais il montre une couleur différente plutôt que du rouge. Quel type de paramètre pouvons-nous passer dans setTextColor ()? Dans la documentation, il est dit int , mais est-ce une valeur de référence de ressource ou autre chose?

Tu devrais utiliser:

 holder.text.setTextColor(Color.RED); 

Pour un test de santé mentale, je l’ai juste essayé, parce que j’avais un projet ouvert de toute façon, et oui, c’est beau et rouge; D


Vous pouvez bien entendu utiliser différentes fonctions de la classe Color pour obtenir le même effet.

  • Color.parseColor (Manual) (comme les utilisations de LEX)

     text.setTextColor(Color.parseColor("#FFFFFF")); 
  • Color.rgb et Color.argb ( Manual rgb ) ( Manual argb ) (comme Ganapathy utilise)

     holder.text.setTextColor(Color.rgb(200,0,0)); holder.text.setTextColor(Color.argb(0,200,0,0)); 
  • Et bien sûr, si vous souhaitez définir votre couleur dans un fichier XML , vous pouvez le faire:

     #f00 

    getColor() fonction getColor() est obsolète 1 , vous devez l’utiliser comme getColor() :

     ContextCompat.getColor(context, R.color.your_color); 
  • Vous pouvez également insérer HEX plain, comme ceci:

     myTextView.setTextColor(0xAARRGGBB); 

    Où vous avez un canal alpha en premier, puis la valeur de couleur.

Consultez bien sûr le manuel complet, classe publique Color étend Object .


1 Ce code se trouvait également ici:

 textView.setTextColor(getResources().getColor(R.color.errorColor)); 

Cette méthode est maintenant obsolète dans Android M. Vous pouvez cependant l’utiliser depuis le contextCompat de la bibliothèque de support , comme le montre maintenant l’exemple.

Si vous souhaitez toujours spécifier vos couleurs dans votre fichier XML:

 #f00 

Puis référencez-le dans votre code avec l’une de ces deux méthodes:

 textView.setTextColor(getResources().getColor(R.color.errorColor, getResources().newTheme())); 

ou

 textView.setTextColor(getResources().getColor(R.color.errorColor, null)); 

Le premier est probablement préférable si vous comstackz avec Android M, mais le thème que vous passez peut être nul, donc peut-être que c’est plus facile pour vous?

Et si vous utilisez la bibliothèque Compat, vous pouvez faire quelque chose comme ça

 textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor)); 

Et un autre:

 TextView text = (TextView) findViewById(R.id.text); text.setTextColor(Color.parseColor("#FFFFFF")); 

Vous pouvez le faire uniquement à partir d’un fichier XML.

Créez un fichier color.xml dans le dossier de valeurs:

   #ffcc33  

Ensuite, dans n’importe quel fichier XML, vous pouvez définir la couleur du texte en utilisant,

 android:textColor="@color/textbody" 

Ou vous pouvez utiliser cette couleur dans un fichier Java:

 final TextView tvchange12 = (TextView) findViewById(R.id.textView2); //Set color for textbody from color.xml file tvchange1.setTextColor(getResources().getColor(R.color.textbody)); 

Vous pouvez utiliser

 holder.text.setTextColor(Color.rgb(200,0,0)); 

Vous pouvez également spécifier la couleur souhaitée avec Transparency.

 holder.text.setTextColor(Color.argb(0,200,0,0)); 

a pour valeur Alpha (Transparent) r-rouge g-vert b-bleu

utilisez le code suivant dans layout.xml

   

Il existe de nombreuses façons de définir la couleur sur la vue texte.

  1. Ajouter une valeur de couleur en studio res-> values-> colors.xml as

     #800080 

    Maintenant, définissez la couleur dans xml ou actvity class comme

     text.setTextColor(getResources().getColor(R.color.color_purple) 
  2. Si vous voulez donner un code couleur directement, utilisez le code Color.parseColor

     textView.setTextColor(Color.parseColor("#ffffff")); 
  3. Vous pouvez également utiliser RGB

     text.setTextColor(Color.rgb(200,0,0)); 
  4. Utiliser peut également utiliser l’hexcode direct pour textView. Vous pouvez également insérer HEX plain, comme ceci:

     text.setTextColor(0xAARRGGBB); 
  5. Vous pouvez également utiliser argb avec les valeurs alpha.

      text.setTextColor(Color.argb(0,200,0,0)); 

    a pour Alpha (Transparent) v.

  6. Et si vous utilisez la bibliothèque Compat, vous pouvez faire quelque chose comme ça

      text.setTextColor(ContextCompat.getColor(context, R.color.color_purple)); 

Je le fais normalement pour toutes les vues:

 myTextView.setTextColor(0xAARRGGBB); 

  • AA définit l’alpha (00 pour transparent, FF pour opaque)

  • RRGGBB définit le code de couleur HTML normal (comme FF0000 pour le rouge).

Si vous prévoyez d’utiliser setTextAppearance, vous devez savoir qu’il remplacera la couleur du texte par le style hérité du thème. Donc, si vous voulez utiliser les deux, définissez la couleur par la suite .

Cela marche:

 textView.setTextAppearance(context, android.R.style.TextAppearance_Medium); textView.setTextColor(Color.RED); 

Alors que votre couleur de texte sera par exemple blanche (pour le thème sombre) ou noire (pour le thème clair):

 textView.setTextColor(Color.RED); textView.setTextAppearance(context, android.R.style.TextAppearance_Medium); 

Contrairement à cela en XML, l’ordre est arbitraire.

Je pense que si vous voulez spécifier une couleur en tant que ressource (dans le fichier XML ), vous devrez fournir sa valeur ARGB (pas simplement la valeur RGB).

Essayez de changer votre valeur de couleur en #FFFF0000 . Cela devrait vous donner ROUGE.

Utilisation:

 TextView tv = new TextView(this); tv.setTextColor(Color.rgb(285,0,0)); 
 textView.setTextColor(ContextCompat.getColor(getApplicationC‌​ontext(),R.color.col‌​orWhite)); 

Dans le fichier colors.xml , écrivez le code ci-dessous:

 #FFFFFF 
 holder.text.setTextColor(Color.rgb(200,0,0)); 

ou

 myTextView.setTextColor(0xAARRGGBB); 

Avec Adapter, vous pouvez définir la couleur du texte en utilisant ce code:

 holder.text_view = (TextView) convertView.findViewById(R.id.text_view); holder.text_view.setTextColor(Color.parseColor("#FF00FF")); 
 TextView text = new TextView(context); text.setTextColor(Color.parseColor("any hex value of a color")); 

Le code ci-dessus fonctionne de mon côté. Ici, le text est un TextView sur lequel la couleur doit être définie.

 text1.setTextColor(Color.parseColor("#000000")); 

si vous voulez donner directement le code couleur, utilisez

 textView.setTextColor(Color.parseColor("#ffffff")); 

ou si vous voulez donner un code de couleur à partir du dossier de couleurs, alors utilisez

 textView.setTextColor(R.color.white); 

text.setTextColor(getResource().getColor(R.color.black)) vous avez créé la couleur noire dans color.xml.

OU

text.setTextColor(Color.parseColor("#000000")) tapez ici le code hexadécimal souhaité

OU

text.setTextColor(Color.BLACK) vous pouvez utiliser des champs de couleur statiques

  textViewStatus.setTextColor(res.getColor(R.color.green)); 

Dans Adapter, vous pouvez définir la couleur du texte en utilisant ce code:

 holder.my_text_view = (TextView) convertView.findViewById(R.id.my_text_view); holder.my_text_view.setTextColor(Color.parseColor("#FFFFFF")); 

Pour définir la couleur d’un TextView, TextView.setTextColor(R.color.YOURCOLOR) ne suffit pas!

Il doit être utilisé comme ça –

 TextView myText = (TextView) findViewById(R.id.YoutTextViewID); myText.setTextColor(getResources().getColor(R.color.YOURCOLOR); 

OU

 myText.setTextColor(Color.parseColor("#54D66A")); 
 holder.userType.setTextColor(context.getResources().getColor( R.color.green)); 

À partir de l’API 23, getResources().getColor() est obsolète.

Utilisez ceci à la place:

 textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black)); 

De même, j’utilisais color.xml :

 #ffffff #000000 

Pour définir l’ TextView plan de TextView comme:

 textView.setTextColor(R.color.white); 

J’avais une couleur différente, mais quand j’ai utilisé le code ci-dessous, j’ai la couleur réelle.

 textView.setTextColor(Color.parseColor("#ff6363")); 

J’ai fait ceci: Créez un fichier XML, appelé Couleurs dans le dossier res / values.

Mes Couleurs.xml:

    #cc0000 #4c4cff #000000 #CFDBC5 #ffffff #cccc00 #66b266  

Pour obtenir ces couleurs à partir du fichier xml, j’ai utilisé ce code: valor, c’est un TextView, et ctx, un object contextuel. Je ne l’utilise pas d’une activité, mais d’un BaseAdapter à un ListView. C’est pourquoi j’ai utilisé cet object contextuel.

 valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito)); 

J’espère que cela aide.

Pour fournir les valeurs text.setTextColor(Color.rgb(200,0,0)); : text.setTextColor(Color.rgb(200,0,0));
Pour parsingr la couleur à partir d’une valeur hexadécimale: text.setTextColor(Color.parseColor("#FFFFFF"));

Si vous êtes dans un adaptateur et que vous souhaitez toujours utiliser une couleur définie dans les ressources, vous pouvez essayer l’approche suivante:

 holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed)); 
 TextView textresult = (TextView)findViewById(R.id.textView1); textresult.setTextColor(Color.GREEN); 

getColor () est obsolète

Alors essayez de cette façon:

  tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white)); 

Je faisais cela pour un TextView dans un ViewHolder pour un RecyclerView. Je ne sais pas trop pourquoi, mais cela n’a pas fonctionné pour moi lors de l’initialisation de ViewHolder.

 public ViewHolder(View itemView) { super(itemView); textView = (TextView) itemView.findViewById(R.id.text_view); textView.setTextColor(context.getResources().getColor(R.color.myColor)); // Other stuff } 

Mais quand je l’ai déplacé sur le onBindViewHolder, cela a bien fonctionné.

 public void onBindViewHolder(ViewHolder holder, int position){ // Other stuff holder.textView.setTextColor(context.getResources().getColor(R.color.myColor)); } 

J’espère que cela aide quelqu’un.