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

Android Discussion :

Gestion des polices


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Points : 103
    Points
    103
    Par défaut Gestion des polices
    Bonjour à tous,

    je voulais savoir si il y avait une autre manière de gérer les polices importés que cette manière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TextView texteViewIndicationCodePostal = (TextView) findViewById(R.id.indicationCodePostal);
            Typeface fontIndicationCodePostal = Typeface.createFromAsset(getAssets(), "freestyle_script.ttf");
            texteViewIndicationCodePostal.setTypeface(fontIndicationCodePostal);
    Es-ce qu'on peut gérer ça avec du XML ?

    Autre question sur la gestion de polices:

    Comment puis-je faire pour gérer différentes couleurs de texte dans un même bouton.
    Par exemple:

    Bonjour à tous les amis

    Je vous remercie

  2. #2
    Membre habitué Avatar de linked
    Profil pro
    Développeur Android
    Inscrit en
    Mai 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Mai 2008
    Messages : 88
    Points : 133
    Points
    133
    Par défaut
    Par XML, je pense que ce n'est pas possible .

    Pour colorier un texte ,j'ai fait une petite méthode (que l'on peut largement améliorer mais bon ce code date un peu):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SpannableStringBuilder text;
     
    public void coloriseText(String t, int c){
    		text = new SpannableStringBuilder(t);
    		int len= text.length();
    		text.setSpan(new ForegroundColorSpan(c), 0, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    }
     
    coloriseText("Text à colorier",Color.YELLOW);
    maTextView.setText(text);
    Je l'utilisais pour des TextView donc faut voir si c'est possible avec des boutons.
    Sinon tu remplace les boutons par des TextView et tu met un listener dessus, ça fait aussi un bouton.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Points : 103
    Points
    103
    Par défaut
    C'est bizarre puisque tu retournes rien de la fonction, donc Text ne comporte rien quand tu fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    maTextView.setText(text);
    Comment je peux faire pour gérer deux couleurs du coup dans un même textView (sans en crée deux et rapprocher les chaines)

  4. #4
    Membre habitué Avatar de linked
    Profil pro
    Développeur Android
    Inscrit en
    Mai 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Android

    Informations forums :
    Inscription : Mai 2008
    Messages : 88
    Points : 133
    Points
    133
    Par défaut
    Comme dit c'est un vieux bout de code que l'on peut améliorer. J'avais mis la variable "text" en global donc visible dans toute la classe.

    Sinon pour l'améliorer, à la place de void , tu retourne le texte en couleur, il n'y a pas de soucis.

    Et pour avoir différentes couleurs dans la même TextView, il suffit de concaténer le texte retourné. J'ai pas testé mais je dirais avec un simple "+" cela devrais fonctionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public SpannableStringBuilder coloriseText(String t, int c){
    		SpannableStringBuilder text = new SpannableStringBuilder(t);
    		int len= text.length();
    		text.setSpan(new ForegroundColorSpan(c), 0, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
                    return text;
    }
    puis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTextView.setText(coloriseText("Text 1 à colorier",Color.YELLOW)+coloriseText("Text 2 à colorier",Color.GREEN));

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Points : 103
    Points
    103
    Par défaut
    Apparemment on ne peut pas faire une concaténation de deux "SpannableStringBuilder" avec un "+"

  6. #6
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Méthode append(String)

    Je ne pense pas, par contre, que cela garde les attributs (couleur, police ...) du StringBuilder rajouté.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Points : 103
    Points
    103
    Par défaut
    J'ai réussi mais le problème c'est que j'arrive pas à utiliser les couleurs perso avec. Si j'utilise les couleurs déjà défini dans Eclipse ça marche, mais quand je fais référence à une couleur défini par moi même dans le fichier color, ça compile et tout (car ça renvoi un int quand même) mais ça n'applique pas la couleur.

    EDIT: J'ai trouvé la solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SpannableStringBuilder blanc;
    SpannableStringBuilder brun;
    SpannedString resultat;
    Color c;
     
    c = new Color();
    blanc = coloriseText("Text 1 à colorier ", Color.WHITE);
    brun = coloriseText("Text 2 à colorier", c.rgb(156, 142, 121));
    resultat = (SpannedString) TextUtils.concat(blanc, brun);
    (156,142,121) étant le code RGB d'une couleur

    EDIT: Comment pourrais-je gérer la taille du texte en plus de la couleur dans la fonction coloriseText ?

    J'ai trouvé la réponse vous pouvez gérer ça grâce à cette ligne de code (à rajouter dans la fonction)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    text.setSpan(new AbsoluteSizeSpan(d, true) , 0, len, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
    d est la taille de la police
    true pour dire que c'est en dp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. le <b> qui gâche la gestion des polices
    Par mh333 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 13/09/2012, 15h26
  2. [Lazarus] Gestion des polices dans l'EDI de Lazarus
    Par ovni76 dans le forum Lazarus
    Réponses: 1
    Dernier message: 19/03/2011, 12h19
  3. Gestion des polices avec canvas.drawText()
    Par macRiaz dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 25/02/2010, 00h58
  4. [FLASH 8] Gestion des polices
    Par dom_dev dans le forum Flash
    Réponses: 9
    Dernier message: 16/11/2006, 16h35
  5. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 18h29

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