Pierre87 Posté(e) 20 janvier 2011 Share Posté(e) 20 janvier 2011 Salut! Je cherche à afficher un texte ayant un fond coloré qui "suit" le texte. Je ne peux pas utiliser le "background" normal, car celui ci est affiché sur la totalité de l'espace occupé par la TextView (un gros rectangle, si le texte est sur plusieurs lignes). En gros, je veux pouvoir surligner le texte. Auriez vous une idée/piste? Merci! Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 20 janvier 2011 Share Posté(e) 20 janvier 2011 Peut être te diriger vers un Canvas/Paint Je sais pas a fond comment ca marche mais personnellement cela m'avait bien servie pour écrire sur une progressBar qui évolue. J'ai trouver ca : ici Donc peut être synchroniser un draw text et un draw background ... Jok Note : Tu as deux fois le même sujet ouvert ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 21 janvier 2011 Auteur Share Posté(e) 21 janvier 2011 Merci! Mais je n'ai pas l'impression que ce soit ce que je veux :( Je n'ai pas l'impression que ce soit possible. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 22 janvier 2011 Share Posté(e) 22 janvier 2011 Autre idée : Un textview pattern avec minWidth="1dp" ou qqch du genre pour n'afficher qu'un caractère. Ensuite tu bornes maxLine à 1. Le background en 9.png qui s'étend ou sur keyevent surligner la lettre avec un canevas paint ? Dans le code, sur changement de ligne tu rajoutes un nouveau textView du même pattern (inflate + ajout à la vue courante vertical) Non ? Jok Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 22 janvier 2011 Auteur Share Posté(e) 22 janvier 2011 Oula! Je n'ai rien compris du tout :( Mais ça oblige à avoir 1 TextView par ligne ou caractère? Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 22 janvier 2011 Share Posté(e) 22 janvier 2011 1 textView par ligne effectivement :( (c'est pour éviter le pâté coloré pour 9.png). Enfin ce n'était qu'une idée. Pour le canevas de couleur qui color le caractère je ne sais pas trop comment ca fonctionne mais par contre du coup pas besoin de multiplié les textviews Bon courage en tout cas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 22 janvier 2011 Auteur Share Posté(e) 22 janvier 2011 j'ai réussi : Spannable spannable = new SpannableString("aaaaaaaaaaaaaaa aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaa aaaaaaa"); BackgroundColorSpan span = new BackgroundColorSpan(Color.RED); spannable.setSpan(span, 0, spannable.length(), 0); textView.setText(spannable); très chiant à l'utilisation >.< Lien vers le commentaire Partager sur d’autres sites More sharing options...
jokamax Posté(e) 23 janvier 2011 Share Posté(e) 23 janvier 2011 Bien joué ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 23 janvier 2011 Auteur Share Posté(e) 23 janvier 2011 Pour les curieux, voilà le principe: - On peut lier à une TextView un Spannable (texte formaté), vois Spanned aussi - On peut construire un Spannable de plein de façon: SpannableString (statique), SpannableStringBuilder (non statique) ou Html.fromHtml (avec un peu de HTML) - Il est possible d'appliquer des Span (formatage) sur un Spannable à l'aide de la méthode setSpan() (voir aussi les flags de Spanned) - Un Span est un objet des classes CharacterStyle ou ParagraphStyle (il y en a d'autres), je vous conseille de jeter un oeil à leurs classes "filles" Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.