En XML, podemos establecer un color de texto por el textColor
atributo, como android:textColor="#FF0000"
. Pero, ¿cómo lo cambio al codificar?
Intenté algo como:
holder.text.setTextColor(R.color.Red);
Donde holder
es solo una clase y text
es de tipo TextView
. El 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?
Respuestas:
Deberías usar:
Puede usar varias funciones de la
Color
clase para obtener el mismo efecto, por supuesto.Color.parseColor
(Manual) (como los usos de LEX)Color.rgb
yColor.argb
( Manual rgb ) ( Manual argb ) (como los usos de Ganapathy)Y, por supuesto, si desea definir su color en un
XML
archivo, puede hacer esto:debido a que la
getColor()
función está en desuso 1 , debe usarla así:También puede insertar HEX plano, así:
Donde primero tiene un canal alfa, luego el valor de color.
Consulte el manual completo, por supuesto, la clase pública Color extiende Objeto .
1 Este código también solía estar aquí:
Este método ahora está en desuso en Android M. Sin embargo, puede usarlo desde contextCompat en la biblioteca de soporte , como muestra ahora el ejemplo.
fuente
getColor(int)
es obsoleto.Si aún desea especificar sus colores en su archivo XML:
Luego, haz referencia en tu código con uno de estos dos métodos:
o
El primero es probablemente preferible si está compilando contra Android M, sin embargo, el tema que pasa puede ser nulo, ¿entonces tal vez sea más fácil para usted?
Y si está utilizando la biblioteca Compat, puede hacer algo como esto
fuente
getColor(int)
es obsoleto.ContextCompat.getColor(getContext(), R.color.yourColor);
Parece ser el reemplazo.Y otro:
fuente
getResources()
es una función miembro de contexto. Para adaptadores, usegetContext().getResources()
. Los valores de color deben ir a los recursos, como en la respuesta de @ xbakesx.También puede hacer esto solo desde un archivo XML.
Cree un
color.xml
archivo en la carpeta de valores:Luego, en cualquier archivo XML, puede establecer el color para el texto usando,
O puede usar este color en un archivo Java:
fuente
Puedes usar
También puede especificar qué color desea con Transparencia.
a para el valor Alfa (transparente) r-rojo g-verde b-azul
fuente
use el siguiente código en layout.xml
fuente
Hay muchas formas diferentes de configurar el color en la vista de texto.
Agregue valor de color en studio res-> values-> colors.xml as
Ahora configure el color en xml o clase de actividad como
Si desea dar un código de color directamente, use el código Color.parseColor a continuación
También puedes usar RGB
El uso también puede usar el código hexadecimal directo para textView. También puede insertar HEX plano, así:
También puede usar argb con valores alfa.
a para Alfa (transparente) v.
Y si está utilizando la biblioteca Compat, puede hacer algo como esto
fuente
Normalmente hago esto para cualquier vista:
dónde
AA define alfa (00 para transparente, FF para opaco)
RRGGBB define el código de color HTML normal (como FF0000 para rojo).
fuente
Si planea usar setTextAppearance , debe saber que sobrescribirá el color del texto con el estilo heredado del tema. Entonces, si desea usar ambos, configure el color después .
Esto funciona:
Si bien esto hará que su color de texto sea, por ejemplo, blanco (para el tema oscuro) o negro (para el tema claro):
Contrariamente a esto en XML, el orden es arbitrario.
fuente
En el
colors.xml
archivo, escriba el código a continuación:fuente
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.fuente
text.setTextColor(getResource().getColor(R.color.black))
tiene crear color negro en color.xml.O
text.setTextColor(Color.parseColor("#000000"))
aquí escriba el código hexadecimal deseadoO
text.setTextColor(Color.BLACK)
puedes usar campos de color estáticosfuente
Utilizar:
fuente
o
fuente
Usando el Adaptador puede establecer el color del texto usando este código:
fuente
El código anterior está funcionando de mi lado. Aquí
text
hay un TextView en el que se necesita establecer el color.fuente
fuente
Desde la API 23 en adelante,
getResources().getColor()
está en desuso.Use esto en su lugar:
fuente
fuente
En Adaptador, puede establecer el color del texto utilizando este código:
fuente
si desea dar un código de color directamente, use
o si desea dar un código de color de la carpeta de colores, use
fuente
Para configurar el color de un TextView, ¡
TextView.setTextColor(R.color.YOURCOLOR)
no es suficiente!Tiene que usarse así:
O
fuente
fuente
Del mismo modo, estaba usando
color.xml
:Para configurar el
TextView
fondo como:Estaba obteniendo un color diferente, pero cuando utilicé el siguiente código, obtuve el color real.
fuente
Lo hice de esta manera: crear un archivo XML, llamado Colores en la carpeta res / values.
Mis colores.xml:
Para obtener estos colores del archivo xml, he usado este código: valor es TextView y ctx es un objeto Context. No lo estoy usando desde una Actividad, sino un Adaptador de Base a un ListView. Es por eso que he usado este objeto de contexto.
Espero eso ayude.
fuente
Para proporcionar valores rgb:
text.setTextColor(Color.rgb(200,0,0));
Para analizar el color de un valor hexadecimal:
text.setTextColor(Color.parseColor("#FFFFFF"));
fuente
Si está en un adaptador y todavía quiere usar un color definido en los recursos, puede probar el siguiente enfoque:
fuente
fuente
getColor () está desactualizado
Así que intente de esta manera:
fuente
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.
Pero cuando lo moví al onBindViewHolder, funcionó bien.
Espero que esto ayude a alguien.
fuente