Centrage de texte

Résolu
Signaler
Messages postés
28
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
25 juillet 2008
-
Messages postés
28
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
25 juillet 2008
-
Bonjour,


Je cherche a centrer un texte (sur un canvas). Je connais le point
central ou le mettre, la police et forcement le texte à ecrire.

 J'arrive à le centrer sur la vertical mais je ne vois pas comment faire pour l'horizontal.


Quelqu'un a une idée?


BokC

5 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
arf horizontal pas vertical !

L'algorithme est le même, mais je le répète: qu'est-ce qui te pose problème ?

Si c'est pour récupèrer la largeur du texte en pixel, il faut passer par un TextLayout (voir dans ma dernière source : dksWordArt) le tracé du wordart dans le draw de la classe CWordArt (il me semble que c'est là).
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
131
C'est quoi qui te pose problème pour l'horizontal ?

Quel est l'algorithme que tu utilise ?

Il s'agit de : (HauteurCanvas - HauteurTexte) / 2
Messages postés
28
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
25 juillet 2008

Non ca ca va. C'est plutot dans l'autre sens puisque je ne connait pas la largeur de mon texte.
Messages postés
28
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
25 juillet 2008

Oui c est ca. C est la largeur en pixel de mon texte qui me pose probleme.
Messages postés
28
Date d'inscription
lundi 6 novembre 2000
Statut
Membre
Dernière intervention
25 juillet 2008

Merci pour l'info.
Voila ce que ca donne avec un TextLayout :

Font font = new Font("Arial", Font.PLAIN, sizeFont);
FontRenderContext frc = g2.getFontRenderContext();
TextLayout layout = new TextLayout(x + ";" + y, font, frc);
layout.draw(g2, (int)(xCenter-layout.getBounds().getWidth()/2), (int)(yCenter + layout.getBounds().getHeight()/2));