solo - textview android studio
¿Cómo configurar el color del texto de TextView en código? (30)
¡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"));
En XML, podemos establecer un color de texto mediante el atributo textColor
, como android:textColor="#FF0000"
. Pero, ¿cómo lo cambio por codificación?
Probé 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 algo más?
Deberías usar:
holder.text.setTextColor(Color.RED);
Para un control de cordura, lo probé, porque tenía un proyecto abierto de todos modos, y sí, es bonito y rojo; D
Puede usar varias funciones de la clase Color
para obtener el mismo efecto, por supuesto.
Color.parseColor
(Manual) (como utiliza LEX)text.setTextColor(Color.parseColor("#FFFFFF"));
Color.rgb
yColor.argb
( Manual rgb ) ( Manual argb ) (como los usos de Ganapathy)holder.text.setTextColor(Color.rgb(200,0,0)); holder.text.setTextColor(Color.argb(0,200,0,0));
Y, por supuesto, si desea definir su color en un archivo
XML
, puede hacer esto:<color name="errorColor">#f00</color>
Debido a que la función
getColor()
está en desuso 1 , debe usarla así:ContextCompat.getColor(context, R.color.your_color);
También puedes insertar HEX plano, así:
myTextView.setTextColor(0xAARRGGBB);
Donde tienes un canal alfa primero, luego el valor del color.
Echa un vistazo al manual completo, por supuesto, la clase pública Color extiende Objeto .
1 Este código solía estar aquí también:
textView.setTextColor(getResources().getColor(R.color.errorColor));
Este método ahora está en desuso en Android M. Sin embargo, puede usarlo desde contextCompat en la biblioteca de soporte , como se muestra en el ejemplo.
Del mismo modo, estaba usando color.xml
:
<color name="white">#ffffff</color>
<color name="black">#000000</color>
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"));
Desde la API 23 en adelante, getResources().getColor()
está en desuso.
Use esto en su lugar:
textView.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.color_black));
En Adaptador 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"));
Estaba haciendo esto para un TextView en un ViewHolder para un RecyclerView. No estoy muy seguro de por qué, pero no me funcionó 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í a 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.
Hay muchas formas diferentes de configurar el color en la vista de texto.
Agregue el valor del color en el estudio res-> values-> colors.xml as
<color name="color_purple">#800080</color>
Ahora establece el color en xml o clase de actividad como
text.setTextColor(getResources().getColor(R.color.color_purple)
Si quieres dar un código de color directamente, utiliza el código de Color.parseColor
textView.setTextColor(Color.parseColor("#ffffff"));
También puedes usar RGB
text.setTextColor(Color.rgb(200,0,0));
El uso también puede usar el código hexadecimal directo para textView. También puedes insertar HEX plano, así:
text.setTextColor(0xAARRGGBB);
También puedes usar argb con valores alfa.
text.setTextColor(Color.argb(0,200,0,0));
a para alfa (transparente) v.
Y si está utilizando la biblioteca Compat, puede hacer algo como esto
text.setTextColor(ContextCompat.getColor(context, R.color.color_purple));
Hice lo siguiente: crear un archivo XML, llamado Colores en la carpeta res / values.
Mis colores.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="vermelho_debito">#cc0000</color>
<color name="azul_credito">#4c4cff</color>
<color name="preto_bloqueado">#000000</color>
<color name="verde_claro_fundo_lista">#CFDBC5</color>
<color name="branco">#ffffff</color>
<color name="amarelo_corrige">#cccc00</color>
<color name="verde_confirma">#66b266</color>
</resources>
Para obtener estos colores del archivo xml, he usado este código: valor es un TextView, y ctx es un objeto de contexto. No lo estoy usando de una Actividad, sino de un Adaptador de Base 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.
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).
Para proporcionar valores rgb: text.setTextColor(Color.rgb(200,0,0));
Para analizar el color de un valor hexadecimal: text.setTextColor(Color.parseColor("#FFFFFF"));
Puedes hacer esto solo desde un archivo XML también.
Cree un archivo color.xml
en la carpeta de valores:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="textbody">#ffcc33</color>
</resources>
Luego, en cualquier archivo XML, puede establecer el color para el texto usando,
android:textColor="@color/textbody"
O puedes 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
Si aún desea especificar sus colores en su archivo XML:
<color name="errorColor">#f00</color>
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 compilas contra Android M, sin embargo, el tema que transmites puede ser nulo, ¿quizás sea más fácil para ti?
Y si está utilizando la biblioteca Compat, puede hacer algo como esto
textView.setTextColor(ContextCompat.getColor(context, R.color.errorColor));
Si está en un adaptador y aún desea usar un color definido en recursos, puede probar el siguiente enfoque:
holder.text.setTextColor(holder.text.getContext().getResources().getColor(R.color.myRed));
Si planea utilizar setTextAppearance , debe saber que sobrescribirá el color del texto con el estilo heredado del tema. Así que si quieres usar ambos, establece el color después .
Esto funciona:
textView.setTextAppearance(context, android.R.style.TextAppearance_Medium);
textView.setTextColor(Color.RED);
Si bien esto hará que su color de texto 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);
Al contrario de esto, en XML el orden es arbitrario.
Si quieres dar un código de color directamente, usa
textView.setTextColor(Color.parseColor("#ffffff"));
o si desea dar código de color de la carpeta de colores, utilice
textView.setTextColor(R.color.white);
Usando el adaptador 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"));
Utilizar:
TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));
Y otro:
TextView text = (TextView) findViewById(R.id.text);
text.setTextColor(Color.parseColor("#FFFFFF"));
getColor () está en desuso
Así que intenta de esta manera:
tv_title.setTextColor(ContextCompat.getColor(getApplicationContext(), R.color.sf_white));
usa el siguiente código en 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" />
text.setTextColor(getResource().getColor(R.color.black))
ha creado un color negro en color.xml.
O
text.setTextColor(Color.parseColor("#000000"))
aquí escriba el código hexadecimal deseado
O
text.setTextColor(Color.BLACK)
puede usar campos de color estáticos
textViewStatus.setTextColor(res.getColor(R.color.green));
TextView text = new TextView(context);
text.setTextColor(Color.parseColor("any hex value of a color"));
El código de arriba está trabajando de mi lado. Aquí el text
es un TextView en el que se necesita establecer el color.
TextView textresult = (TextView)findViewById(R.id.textView1);
textresult.setTextColor(Color.GREEN);
holder.text.setTextColor(Color.rgb(200,0,0));
o
myTextView.setTextColor(0xAARRGGBB);
holder.userType.setTextColor(context.getResources().getColor(
R.color.green));
text1.setTextColor(Color.parseColor("#000000"));
textView.setTextColor(ContextCompat.getColor(getApplicationContext(),R.color.colorWhite));
En el archivo colors.xml
, escriba el siguiente código:
<color name="colorWhite">#FFFFFF</color>