Comment appliquer de la couleur sur les différents états (focalisé, appuyé, activé) de TextView?
J'ai déjà mentionné ceci: http://developer.Android.com/reference/Android/content/res/ColorStateList.html , mais je ne sais pas comment appliquer la liste d'état de couleur au TextView ou y a-t-il un autre moyen de le faire?
Je veux changer la couleur de fond.
Créez une nouvelle xml
(dans le dossier drawable
). avec la couleur, vous pouvez spécifier une image pour chaque état de l'événement
et vous pouvez définir ce xml comme arrière-plan
si votre code xml est 'res/drawable/abc.xml
', définissez arrière-plan comme
Android:background="@drawable/abc"
Edité pour ajouter de la couleur en état xml
notre xml, res/drawable/abc.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
<item Android:state_selected="true"
Android:drawable="@color/gray" />
</selector>
Puis déclarer le gris dans your res\values\strings.xml
<color name="gray">#808080</color>
créer xml sous res/color dir.
exemple de nom de fichier: selector_white_gray.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="@color/Gray"/> <!-- pressed -->
<item Android:color="@color/White"/> <!-- default -->
</selector>
vous pouvez ajouter plus d'états. vous pouvez utiliser un code de couleur comme "#ffffff" au lieu de "@ color/White" prédéfini. Attention, utilisez Android: couleur pas Android: dessinable. Cet exemple change la couleur du texte lorsque vous appuyez dessus. définissez l'attribut textColor sur le sélecteur ci-dessus.
<TextView
Android:layout_width="wrap_content"
Android:layout_weight="1"
Android:layout_height="wrap_content"
Android:textColor="@color/selector_white_gray"
Android:textSize="18sp"
Android:textStyle="bold" >
</TextView>
C'est facile. Il suffit d’intercepter l’événement souhaité et d’écrire comme ceci:
TextView textView=(TextView)findViewById(R.id.myText);
String s=getString(R.string.myText);
SpannableString ss=new SpannableString(s);
ss.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
textView.setText(ss);
Si vous souhaitez modifier la couleur du texte - vous le créez en tant que fichier xml dans le dossier res/color (par exemple, res/color/mycolor.xml , Puis dans votre TextView, vous l'assignez à la couleur Android:textColor="@color/mycolor"
Pour changer de fond, voir autre réponse.
textView = (TextView)findViewById(R.id.myTextView);
mMainView.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
textView.setTextColor(Color.GREEN);//set the color here
}
});