Ajuster un rectangle autour d'une chaîne sur un Toile Android

Donc, j'utilise Canvas.drawText pour dessiner une chaîne sur un Canvas . Le problème est que je veux dessiner un rectangle avant que le texte apparaisse centré sur le rectangle. Mais j'ai réussi un véritable problème. Les coordonnées x et y fournies pour dessinerTexte ne sont en réalité pas du coin "en haut à gauche " du texte réel, mais plutôt sur la ligne où les caractères commencent. Il existe une méthode Paint.getTextBounds qui renvoie un rectangle "avec origine implicite" à (0,0) du texte qui serait dessiné. La question est que l'origine est à (0,0) . La largeur et la hauteur de cette boîte sont correctes mais je ne sais pas comment placer son coin supérieur gauche dans le coin supérieur gauche de la chaîne qui est dessinée sur le canevas. Je suppose que je devrais utiliser FontMetrics , mais comme beaucoup de valeurs que FontMetrics renvoie sont indésirables, je ne sais pas vraiment comment les utiliser pour mon but.

2 Solutions collect form web for “Ajuster un rectangle autour d'une chaîne sur un Toile Android”

J'ai fini par faire

FontMetrics fm = new FontMetrics(); paint.setTextAlign(Paint.Align.CENTER); paint.getFontMetrics(fm); canvas.drawText(text, x, y + -(fm.ascent + fm.descent) / 2, paint); 

Ce qui élimine le texte centré sur x , y . Avant cela, je dessine un rectangle centré sur x , y avec largeur paint.measureText ( texte )

Essayez le rectangle de dessin en utilisant

canvas.drawRect(x, y - Paint.GetTextSize(), x + Paint.measureText("text"), y, Paint);

  • Android: tracer des traits «irréguliers» sur la toile, une sorte de craie sur le tableau noir
  • Comment dessiner un cercle transparent?
  • Comment faire un bitmap à l'aide de la toile pouvant être cliquable?
  • Android se congèle
  • Dessiner la bulle par programme
  • Impossible de tracer correctement les éléments gridview à l'aide de cellules de vision de texte dans Android
  • Android MapView ItemizedOverlay Draw onTap
  • Pourquoi Android dessine-t-il une autre image (avec la largeur et la hauteur définies en pixels) de manière incorrecte?
  • coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.