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);
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.