Cómo configurar el color de un TextView en Android?
En el archivo string.xml utilizo la siguiente etiqueta
<color name="mycolor1">#F5DC49</color>
Si yo uso
textview1.setTextColor(Color.CYAN);
Funciona, pero
textview1.setTextColor(R.color.mycolor1);
no está trabajando.
¿Cómo puedo utilizar el color definido en el archivo XML?
TextView.setTextColor()
toma un int que representa el color (por ejemplo, 0xFFF5DC49) y no el ID de recurso del archivo xml. En una actividad, puedes hacer algo como:
textView1.setTextColor(getResources().getColor(R.color.mycolor))
Fuera de una actividad necesitará un Context
eg.
textView1.setTextColor(context.getResources().getColor(R.color.mycolor))
textView1.setTextColor(Color.parseColor("#F5DC49"));
Sin recursos
context.getResources().getColor
es Deprecated.
Es necesario utilizar ContextCompat.getColor () , que forma parte de la Biblioteca de Soporte V4 (por lo que funcionará para todos los API anteriores).
ContextCompat.getColor(context, R.color.my_color);
Necesitará agregar la biblioteca de Soporte V4 añadiendo lo siguiente a la matriz de dependencies
dentro de su aplicación build.gradle:
compile 'com.android.support:support-v4:23.0.1' # or any version above
Si te interesa el tema, la documentación especifica que el método utilizará el tema del contexto:
A partir de M, el color devuelto se denominará para el tema del Contexto especificado