98 votes

Comment changer un TextView du style au moment de l'exécution

J'ai une application android sur lequel, lorsque l'utilisateur appuie sur un TextView, je voudrais appliquer un style défini.

J'ai pensé à trouver un textview.setStyle() , mais il n'existe pas. J'ai essayé

textview.setTextAppearance();

mais il ne fonctionne pas.

143voto

Glenn Points 1032

Je l'ai fait par la création d'un nouveau fichier XML, res/values/style.xml comme suit:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="boldText">
        <item name="android:textStyle">bold|italic</item>
        <item name="android:textColor">#FFFFFF</item>
    </style>

    <style name="normalText">
        <item name="android:textStyle">normal</item>
        <item name="android:textColor">#C0C0C0</item>
    </style>

</resources>

J'ai également une des entrées dans ma "strings.xml" fichier comme ceci:

<color name="highlightedTextViewColor">#000088</color>
<color name="normalTextViewColor">#000044</color>

Alors, dans mon code, j'ai créé un ClickListener pour piéger le robinet de l'événement sur que TextView:

myTextView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view){
                //highlight the TextView
                myTextView.setTextAppearance(getApplicationContext(), R.style.boldText);
                myTextView.setBackgroundResource(R.color.highlightedTextViewColor);
            }
        });

Pour le modifier, vous pouvez utiliser ceci:

myTextView.setTextAppearance(getApplicationContext(), R.style.normalText);
myTextView.setBackgroundResource(R.color.normalTextViewColor);

90voto

DKDiveDude Points 828

Comme Jonathan a suggéré, à l'aide de textView.setTextTypeface fonctionne, j'ai juste utilisé dans une application il ya quelques secondes.

textView.setTypeface(null, Typeface.BOLD); // Typeface.NORMAL, Typeface.ITALIC etc.

12voto

Azhar Points 6800
TextView tvCompany = (TextView)findViewById(R.layout.tvCompany);
tvCompany.setTypeface(null,Typeface.BOLD);

Vous un ensemble de code. Police de caractères

2voto

sfera Points 91

j'ai trouvé textView.setTypeface(Typeface.DEFAULT_BOLD); à être la méthode la plus simple.

0voto

GSree Points 1775

Voir doco pour setText() dans le TextView http://developer.android.com/reference/android/widget/TextView.html

Pour le style de vos chaînes, joindre android.texte.style.* objets à un SpannableString, ou consultez la liste des Types de Ressources de la documentation pour un exemple de configuration de texte mis en forme dans le fichier XML du fichier de ressources.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X