229 votes

Texte de Android Center sur toile

Je suis en train d’afficher un texte en utilisant le code ci-dessous ! Le problème est que le texte n’est pas centré sur la hauteur. Quand j’ai mis les coordonnées pour le drawText, il fixe le fond du texte à cette position. Je voudrais que le texte à dessiner afin que le texte est centré également à la hauteur.

Il s’agit d’une image à afficher mon problème plus loin : http://i61.tinypic.com/11uho37.png

Merci !

443voto

Arun George Points 5886
Essayez ce qui suit :

72voto

VinceStyling Points 896

Aligner verticalement est difficile parce que le texte de la descente et de la montée qui s'est passé, beaucoup de gars utilisé de la Peinture.getTextBounds() pour récupérer le TextWidth et TextHeight, mais cela ne rend pas le texte center très bien. Ici, nous pouvons utiliser de la Peinture.savoir measuretext() pour calculer la TextWidth, le TextHeight nous n'avons tout simplement en soustrayant avec la descente et de la montée, puis nous avons eu le plus de l'approche TextSize, le travail suivant est assez facile pour les uns les autres.

Rect areaRect = new Rect(0, 0, 240, 60);

// draw the background style (pure color or image)
Paint.setColor(Color.BLACK);
Canvas.drawRect(areaRect, Paint);

String pageTitle = "文字小说";

RectF bounds = new RectF(areaRect);
// measure text width
bounds.right = Paint.measureText(pageTitle, 0, pageTitle.length());
// measure text height
bounds.bottom = Paint.descent() - Paint.ascent();

bounds.left += (areaRect.width() - bounds.right) / 2.0f;
bounds.top += (areaRect.height() - bounds.bottom) / 2.0f;

Paint.setColor(Color.WHITE);
Canvas.drawText(pageTitle, bounds.left, bounds.top - Paint.ascent(), Paint);

screen shot by the code

Par ailleurs, nous recommandons fortement l'utilisation RectF plutôt que Rect parce que les positions ont besoin de plus de précision les valeurs, dans mon expérience, RectF fait le haut&le bas de la déviation juste d'un pixel sur xhdpi appareil, Rect serait deux de plus.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X