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


En XML, nous pouvons définir une couleur de texte par textColor attribut, 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 text est de type TextView. 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?


452
2018-01-05 10:14


origine


Réponses:


Tu devrais utiliser:

holder.text.setTextColor(Color.RED);

Pour un contrôle de santé, je l'ai juste essayé, parce que j'avais un projet ouvert de toute façon, et oui, c'est joli et rouge;


Vous pouvez utiliser différentes fonctions du Color classe pour obtenir le même effet bien sûr.

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

    text.setTextColor(Color.parseColor("#FFFFFF"));
    
  • Color.rgb et Color.argb (Manuel rgb) (Manuel 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 voulez définir votre couleur dans un XML fichier, vous pouvez le faire:

    <color name="errorColor">#f00</color>
    

    parce que le getColor() la fonction est dépréciée1, vous devez l'utiliser comme ça:

    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 le manuel complet bien sûr, Classe publique Couleur étend Objet.


1Ce code était aussi 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 dans la bibliothèque de support, comme le montre l'exemple maintenant.


1066
2018-01-05 10:17



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

<color name="errorColor">#f00</color>

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 compilez sur Android M, mais le thème que vous passez peut être nul, alors 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));

130
2018-04-01 19:53



Et un autre:

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

42
2017-09-16 10:12



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

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

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="textbody">#ffcc33</color>

</resources>

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));

35
2017-10-19 04:41



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));

un pour Alpha Valeur (transparente) r-rouge g-vert b-bleu


25
2018-01-05 10:44



utilisez le code suivant dans layout.xml

<TextView  android:id="@+id/textView1"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content" 
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?
android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/add"
        android:layout_marginTop="16dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#25383C"
        android:textSize="13sp" />

11
2018-01-09 13:13



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

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

    <color name="color_purple">#800080</color>
    

    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, utilisez directement le code Color.parseColor

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

    text.setTextColor(Color.rgb(200,0,0));
    
  4. L'utilisation peut également utiliser le code hexadécimal direct pour textView. Vous pouvez également insérer HEX plain, comme ceci:

    text.setTextColor(0xAARRGGBB);
    
  5. Vous pouvez également utiliser argb avec des 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));
    

10
2018-05-12 09:34



Je le fais normalement pour toutes les vues:

myTextView.setTextColor(0xAARRGGBB);

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

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


8
2017-12-21 03:09