IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Taille du texte dans TextView


Sujet :

Composants graphiques Android

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Points : 37
    Points
    37
    Par défaut Taille du texte dans TextView
    Bonjour à tous,

    voilà le problème:
    Je cherche à réaliser un dégradé sur le texte que j'affiche dans ma TextView, je m'y prends comme cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Shader textShader=new LinearGradient(0, 0, w, 0,
    				    new int[]{Color.BLUE,Color.RED},
    				    new float[]{0, 1}, Shader.TileMode.CLAMP);
    			this.getPaint().setShader(textShader);
    Où w correspond à la largeur de ma TextView.
    Cela fonctionne plutôt bien quand le texte est centré et prend la majorité de la TextView (le dégradé est appliqué sur toute la largeur de la textView). Mais par contre, si mon texte est petit par rapport à la textView, le dégradé n'est quasiment pas visible.

    En effet, si le texte est aligné à gauche, il apparaitra bleu, et si il est à droite, il sera rouge (logique).

    L'idée est donc d'initialiser mon LinearGradient à la largeur REELLE de mon texte, et non pas à celui de la TextView. Ainsi, le dégradé sera toujours appliqué de manière optimale.

    Y'a-t-il un moyen de récupérer ce genre d'informations via la TextView? (en sachant que cela dépend forcément du font, du textSize...)
    Il va surement falloir faire appel à OnMeasure() mais je ne comprends pas trop comment cela fonctionne, et à quel moment est appelé cette méthode dans le cycle de création du TextView.

    Si vous avez des idées je suis preneur.

    Merci à tous.

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Le onMeasure est appelé à chaque modification de ta View il me semble, ce n'est pas à toi de le gérer sur ces appels. Par contre tu peux le modifier, comme ton idée de récupérer la taille de ton layout.

    Maintenant une fonction existe pour récupérer le Rect
    http://developer.android.com/referen...graphics.Rect)

    Je ne sais pas si'l retourne le Rect de la totalité de ton layout ou seulement celui utilisé, à tester.

    Après une autre fonction GetTextSize qui te renvoie la longueur du texte en pixel

    http://developer.android.com/referen...#getTextSize()

    Edit :

    Autre possibilité , récupérer le Text Paint de ta TextView puis utiliser cette fonction pour avoir son Rect
    http://developer.android.com/referen...graphics.Rect)

    Pour récupérer ton TextPaint il suffit d'utiliser cette fonction GetTextPaint()
    http://developer.android.com/referen...tml#getPaint()
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Discussions similaires

  1. [vb 2005]Taille du texte dans datagridview
    Par estelledany dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/06/2006, 14h24
  2. modifier la taille du texte dans un JButton?
    Par Zoroastre dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 14/01/2006, 18h46
  3. Réponses: 1
    Dernier message: 27/10/2005, 16h26
  4. Taille du texte dans un ActiveX
    Par Audin'S dans le forum MFC
    Réponses: 1
    Dernier message: 27/05/2005, 13h43
  5. taille du texte dans un viewport
    Par pitounette dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/07/2002, 12h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo