2010-07-14 5 views
0

Est-il possible de changer la couleur du texte d'une vue de texte si la vue de texte est pressée? Je souhaite obtenir un effet de clignotement avec le changement de couleur uniquement pendant la durée de la pression sur le bouton.Comment changer le texteCouleur sur presse Même sous Android?

Je sais comment changer l'arrière-plan de la vue texte avec une liste de sélecteur et l'état correct mais comment puis-je changer la couleur du texte si l'utilisateur appuie sur un bouton ou une simple vue de texte?

Répondre

6

Vous pouvez également définir un sélecteur de couleurs. Un court exemple qui distingue seulement entre emboutie et tous les autres Etats est:

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
     android:state_pressed="true" 
     android:color="#FFFFFF" /> 
    <item 
     android:color="#4C566C" /> 
</selector> 

Pour une documentation complète sur le sélecteur voir ce unofficial documentation.

Placez chaque sélecteur de couleur dans un seul fichier et placez ces fichiers dans un répertoire appelé couleur dans le dossier des ressources de votre projet.

+0

cela ne fonctionne que pour la couleur du texte. Si vous souhaitez l'utiliser pour une couleur d'arrière-plan, vous devez définir une couleur pouvant être dessinée dans chaque élément. – Janusz

+0

pour les débutants comme moi, une info supplémentaire, définissez la propriété textColor à cet drawable afin de définir l'effet. –

0
myTextView.setTextColor(0xFFFF0000) 
+0

cela n'aura pas l'effet désiré je veux obtenir un changement clignotant tandis que l'utilisateur appuie et change la couleur au moment où il libère le textview – Janusz

+1

je suggérerais d'ajouter tha t exigence à votre question d'origine – JeremyFromEarth

+0

vous avez raison. Edited ma question, désolé pour la confusion – Janusz

1

vous pouvez le modifier en utilisant la méthode setTextColor(ColorStateList)

myTextView.setTextColor(myColorStates); 
+0

On dirait bien mais j'aime faire toute ma mise en page avec XML – Janusz

1

recherche de sélecteur de couleur à utiliser dans le

android: setTexColor

attr

+0

Qu'est-ce que android: setTexColor un attribut de? –

+0

ça marche vraiment? – Ricardo

0

Taken de fonctionnaire documentation:

fichier XML enregistré au res/couleur/button_text.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="#ffff0000"/> <!-- pressed --> 
<item android:state_focused="true" 
     android:color="#ff0000ff"/> <!-- focused --> 
<item android:color="#ff000000"/> <!-- default --> 
</selector> 

Ce fichier XML de mise en page appliquera la liste des couleurs à une vue:

<Button 
android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:text="@string/button_text" 
android:textColor="@color/button_text" /> 
Questions connexes