Existe-t-il un moyen de définir l' textStyle
attribut d'un par TextView
programme? Il ne semble pas y avoir de setTextStyle()
méthode.
Pour être clair, je ne parle pas des styles View / Widget! Je parle de ce qui suit:
<TextView
android:id="@+id/my_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello World"
android:textStyle="bold" />
Réponses:
setTypeface est l'attribut textStyle.
Comme l'a ajouté Shankar V , pour conserver les attributs de police définis précédemment, vous pouvez utiliser:
la source
textview.setTypeface(textview.getTypeface(), Typeface.DEFAULT_BOLD);
textview.getTypeface().getStyle()
Est en faitandroid:textStyle
Disons que vous avez un style appelé RedHUGEText sur vos valeurs / styles.xml:
Créez simplement votre TextView comme d'habitude dans le fichier XML layout / your_layout.xml, disons:
Et dans le code java de votre activité, vous procédez comme suit:
Ça a marché pour moi! Et il a appliqué la couleur, la taille, la gravité, etc. Je l'ai utilisé sur des combinés et des tablettes avec des niveaux d'API Android de 8 à 17 sans aucun problème. Notez que depuis Android 23, cette méthode est obsolète. L'argument contextuel a été supprimé, donc la dernière ligne devrait être:
Rappelez-vous ... ceci n'est utile que si le style du texte dépend vraiment d'une condition de votre logique Java ou si vous construisez l'interface utilisateur "à la volée" avec du code ... si ce n'est pas le cas, il est préférable de simplement faire:
Vous pouvez toujours l'avoir à votre façon!
la source
<style>
balise. Il fait les plus courants (taille, couleur, style), mais n'en applique pas d'autres (y compris le rembourrage, l'arrière-plan, la gravité, etc.)Recherchez
setTextAppearance
ou aussisetTextTypeface
. Il y a une question similaire sur stackoverflow: comment changer le style d'un TextView à l'exécutionla source
Autant de moyens pour accomplir cette tâche, certains sont ci-dessous:
1.
2.
3.
4.
ou si vous voulez via xml
la source
•
Kotlin Version
Pour conserver la police actuelle en plus du style de texte:
la source
Cette question est posée dans de nombreux endroits de différentes manières. J'ai d'abord répondu ici, mais je pense que c'est également pertinent dans ce sujet (puisque je me suis retrouvé ici lorsque je cherchais une réponse).
Il n'y a pas de solution unique à ce problème, mais cela a fonctionné pour mon cas d'utilisation. Le problème est que le constructeur 'View (context, attrs, defStyle)' ne fait pas référence à un style réel, il veut un attribut. Nous allons donc:
Dans 'res / values / attrs.xml', définissez un nouvel attribut:
Dans res / values / styles.xml, je vais créer le style que je veux utiliser sur mon TextView personnalisé
Dans 'res / values / themes.xml' ou 'res / values / styles.xml', modifiez le thème de votre application / activité et ajoutez le style suivant:
Enfin, dans votre TextView personnalisé, vous pouvez maintenant utiliser le constructeur avec l'attribut et il recevra votre style
Il convient de noter que j'ai utilisé à plusieurs reprises customTextView dans différentes variantes et à différents endroits, mais il n'est en aucun cas requis que le nom de la vue corresponde au style ou à l'attribut ou quoi que ce soit. En outre, cette technique devrait fonctionner avec n'importe quelle vue personnalisée, pas seulement avec TextViews.
la source
Cela a fonctionné pour moi
ou
la source
Je l'ai résolu avec deux méthodes simples.
Suivez l'explication.
Ma déclaration de style existante:
Mon code Java Android:
Cordialement.
la source
Vous pouvez essayer celui-ci
la source
Étant donné
setTextAppearance(resId)
que n'est disponible que pour l'API 23 et les versions ultérieures, utilisez:TextViewCompat.setTextAppearance(textViewGoesHere, resId)
Cette méthode est implémentée en interne comme suit:
la source
Comme mentionné ici , cette fonctionnalité n'est actuellement pas prise en charge.
la source