Est-il possible de définir la couleur de la seule étendue de texte dans une TextView?
Je voudrais faire quelque chose de similaire à l'application Twitter, dans laquelle une partie du texte est bleue. Voir l'image ci-dessous:
(source: twimg.com )
android
text
formatting
textview
hpique
la source
la source
Voici une petite fonction d'aide. Idéal lorsque vous avez plusieurs langues!
la source
Je trouve toujours des exemples visuels utiles lorsque j'essaie de comprendre un nouveau concept.
Couleur de l'arrière plan
Couleur de premier plan
Combinaison
Une étude plus approfondie
la source
Si vous voulez plus de contrôle, vous voudrez peut-être vérifier la
TextPaint
classe. Voici comment l'utiliser:la source
Définissez
TextView
le texte de votre texte et définissez unForegroundColorSpan
pour votre texte.la source
Une autre façon qui pourrait être utilisée dans certaines situations est de définir la couleur du lien dans les propriétés de la vue qui prend le Spannable.
Si votre Spannable va être utilisé dans un TextView, par exemple, vous pouvez définir la couleur du lien dans le XML comme ceci:
Vous pouvez également le définir dans le code avec:
la source
Il y a une usine pour créer le Spannable, et éviter le casting, comme ceci:
la source
Définissez la couleur sur le texte en passant la chaîne et la couleur :
Définissez le texte sur TextView / Button / EditText, etc. en appelant le code ci-dessous:
Affichage:
Obtenez une chaîne colorée:
Définissez le texte sur TextView:
Terminé
la source
Production:
la source
Juste pour ajouter à la réponse acceptée, car toutes les réponses semblent parler
android.graphics.Color
uniquement: et si la couleur que je veux est définie dansres/values/colors.xml
?Par exemple, considérez les couleurs Material Design définies dans
colors.xml
:(
android_material_design_colours.xml
est votre meilleur ami)Ensuite, utilisez
ContextCompat.getColor(getContext(), R.color.md_blue_500)
où vous souhaitez utiliserColor.BLUE
, de sorte que:devient:
Où j'ai trouvé ça:
la source
Voici une fonction d'extension Kotlin que j'ai pour cela
Utilisez-le après avoir défini votre texte sur TextView comme ceci
la source
collez ce code dans ur MainActivity
la source
Ci-dessous fonctionne parfaitement pour moi
la source
Certaines réponses ici ne sont pas à jour. Parce que, vous allez (dans la plupart des cas) ajouter une action de clic personnalisée sur votre lien .
En outre, comme indiqué dans l'aide à la documentation, la couleur de votre lien de chaîne étendue aura une couleur par défaut. "La couleur de lien par défaut est la couleur d'accentuation du thème ou android: textColorLink si cet attribut est défini dans le thème".
Voici la façon de le faire en toute sécurité.
Ensuite, pour l'utiliser.
J'espère que cela vous aidera fortement!
la source
À partir des documents du développeur, pour modifier la couleur et la taille d'un spannable:
1- créer une classe:
2 Créez votre spannable en utilisant cette classe:
la source