studio - textview android
Cómo configurar TextColor usando setTextColor(ColorsStateList colors) (3)
Si necesita configurar los colores en el código (con ColorStateList), pero aún desea mantener los estados de color en un XML, es posible que desee utilizar esto:
try {
XmlResourceParser parser = getResources().getXml(R.color.your_colors);
ColorStateList colors = ColorStateList.createFromXml(getResources(), parser);
mText.setTextColor(colors);
} catch (Exception e) {
// handle exceptions
}
res / color / your_colors.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#222222"/>
<item android:state_selected="true"
android:color="#222222"/>
<item android:state_focused="true"
android:color="#222222"/>
<item android:color="#0000ff"/>
</selector>
Necesito cambiar el color del texto cuando cambie el estado (presionado, enfocado) ...
¿Cómo configurar el color del texto de un TextView
usando ColorsStateList
?
editar, resuelto:
textView.setTextColor(new ColorStateList(
new int [] [] {
new int [] {android.R.attr.state_pressed},
new int [] {android.R.attr.state_focused},
new int [] {}
},
new int [] {
Color.rgb (255, 128, 192),
Color.rgb (100, 200, 192),
Color.White
}
));
solución 2
textView.setTextColor(getResources().getColorStateList(R.color.your_colors))
También puede usar ContextCompat para cargar una lista de estados de color.
ColorStateList colors = ContextCompat.getColorStateList(this,R.color.my_color_list);
Tienes que usar getColorStateList()
También estaba luchando con este problema; si desea usar una state list
, debe declararla en la carpeta de recursos de color
, en lugar de la carpeta setTextColor(getResources().getColorStateList(R.color.your_colors))
, y usar setTextColor(getResources().getColorStateList(R.color.your_colors))
.