¿Cómo establecer el color del texto de TextView en el código?

En XML, podemos establecer un color de texto por el atributo textColor , como android:textColor="#FF0000" . ¿Pero cómo lo cambio codificando?

Intenté algo como:

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

Donde el holder es solo una clase y el text es de tipo TextView . Rojo es un valor RGB (# FF0000) establecido en cadenas.

Pero muestra un color diferente en lugar de rojo. ¿Qué tipo de parámetro podemos pasar en setTextColor ()? En la documentación, dice int , ¿pero es un valor de referencia de recurso o cualquier otra cosa?

Deberías usar:

 holder.text.setTextColor(Color.RED); 

Para un control de cordura, simplemente lo probé, porque tenía un proyecto abierto de todos modos, y sí, es lindo y rojo; D


Puede usar varias funciones de la clase Color para obtener el mismo efecto, por supuesto.

  • Color.parseColor (Manual) (como LEX usa)

     text.setTextColor(Color.parseColor("#FFFFFF")); 
  • Color.rgb y Color.argb ( Manual rgb ) ( Argb manual ) (como usa Ganapathy)

     holder.text.setTextColor(Color.rgb(200,0,0)); holder.text.setTextColor(Color.argb(0,200,0,0)); 
  • Y, por supuesto, si quiere definir su color en un archivo XML , puede hacer esto:

     #f00 

    porque la función getColor() está obsoleta 1 , debe usarla de la siguiente manera:

     ContextCompat.getColor(context, R.color.your_color); 
  • También puede insertar HEX simple, así:

     myTextView.setTextColor(0xAARRGGBB); 

    Donde primero tienes un canal alfa, luego el valor de color.

Consulte el manual completo del curso, clase pública Color extends Object .


1 Este código solía estar aquí también:

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

Este método ahora está obsoleto en Android M. Sin embargo, puede usarlo desde contextCompat en la biblioteca de soporte , como se muestra ahora en el ejemplo.

Si aún desea especificar sus colores en su archivo XML:

 #f00 

Luego haz referencia en tu código con uno de estos dos métodos:

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

o

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

El primero es probablemente preferible si está comstackndo contra Android M, sin embargo, el tema que pase puede ser nulo, ¿entonces tal vez es más fácil para usted?

Y si está utilizando la biblioteca de Compat, puede hacer algo como esto

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

Y otro:

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

Usted puede hacer esto solo desde un archivo XML también.

Crea un archivo color.xml en la carpeta de valores:

   #ffcc33  

Luego, en cualquier archivo XML, puede establecer el color para el uso de texto,

 android:textColor="@color/textbody" 

O puede usar este color en un archivo Java:

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

Puedes usar

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

También puede especificar qué color desea con Transparencia.

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

a para valor alfa (transparente) r-rojo g-verde b-azul

utilice el siguiente código en layout.xml

   

Hay muchas formas diferentes de establecer el color en la vista de texto.

  1. Agregue el valor de color en studio res-> values-> colors.xml como

     #800080 

    Ahora configure el color en clase xml o actvity como

     text.setTextColor(getResources().getColor(R.color.color_purple) 
  2. Si desea dar código de color, use directamente debajo del código Color.parseColor

     textView.setTextColor(Color.parseColor("#ffffff")); 
  3. También puedes usar RGB

     text.setTextColor(Color.rgb(200,0,0)); 
  4. El uso también puede usar hexcode directo para textView. También puede insertar HEX simple, así:

     text.setTextColor(0xAARRGGBB); 
  5. También puede usar argb con valores alfa.

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

    a para Alpha (Transparente) v.

  6. Y si está utilizando la biblioteca de Compat, puede hacer algo como esto

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

Normalmente hago esto para cualquier punto de vista:

 myTextView.setTextColor(0xAARRGGBB); 

dónde

  • AA define alfa (00 para transparente, FF para opaco)

  • RRGGBB define el código de color HTML normal (como FF0000 para rojo).

Si planea usar setTextAppearance , debe saber que sobrescribirá el color del texto con el estilo heredado del tema. Entonces, si quiere usar ambos, configure el color después .

Esto funciona:

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

Si bien esto hará que su textcolor sea, por ejemplo, blanco (para el tema oscuro) o negro (para el tema claro):

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

Contrariamente a esto en XML, el orden es arbitrario.

Creo que si desea especificar un color como recurso (en el archivo XML ), deberá proporcionar su valor ARGB (no simplemente el valor RGB).

Intente cambiar su valor de color a #FFFF0000 . Debería darte ROJO.

Utilizar:

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

En el archivo colors.xml , escriba el código siguiente:

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

o

 myTextView.setTextColor(0xAARRGGBB); 

Usando Adapter puedes establecer el color del texto usando este código:

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

El código anterior está trabajando de mi lado. Aquí el text es una vista de text en la que se necesita establecer el color.

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

si quiere dar código de color directamente, use

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

o si quiere dar un código de color de la carpeta de colores, use

 textView.setTextColor(R.color.white); 

text.setTextColor(getResource().getColor(R.color.black)) tiene crear color negro en color.xml.

O

text.setTextColor(Color.parseColor("#000000")) aquí escriba el hexcode deseado

O

text.setTextColor(Color.BLACK) puede usar campos de color estáticos

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

En Adapter puedes establecer el color del texto usando este código:

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

Para establecer el color de un TextView, TextView.setTextColor(R.color.YOURCOLOR) no es suficiente.

Tiene que ser usado así –

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

O

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

Desde API 23 en adelante, getResources().getColor() está en desuso.

Use esto en su lugar:

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

Del mismo modo, estaba usando color.xml :

 #ffffff #000000 

Para configurar el fondo de TextView como:

 textView.setTextColor(R.color.white); 

Estaba obteniendo un color diferente, pero cuando usé el siguiente código obtuve el color real.

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

Lo hice de esta manera: crea un archivo XML, llamado Colores en la carpeta res / values.

My Colors.xml:

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

Para obtener estos colores del archivo xml, he usado este código: valor es un TextView, y ctx es un objeto Context. No lo estoy usando desde una Actividad, sino un BaseAdapter a un ListView. Es por eso que he usado este objeto de contexto.

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

Espero eso ayude.

Para proporcionar valores rgb: text.setTextColor(Color.rgb(200,0,0));
Para analizar el color desde un valor hexadecimal: text.setTextColor(Color.parseColor("#FFFFFF"));

Si está en un adaptador y aún desea usar un color definido en los recursos, puede probar el siguiente enfoque:

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

getColor () está depreceted

Así que intente de esta manera:

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

Estaba haciendo esto para un TextView en un ViewHolder para un RecyclerView. No estoy seguro de por qué, pero no funcionó para mí en la inicialización 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 } 

Pero cuando lo moví al onBindViewHolder, funcionó bien.

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

Espero que esto ayude a alguien.