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

  • Dessinez le carré avec des coins arrondis
  • Android - Chemin de remplissage avec la couleur partiellement
  • Est-il possible d'afficher un texte multicolore avec un appel vers Canvas.drawText ()?
  • Nouvelle ligne lors de la peinture d'un texte dans une image
  • Android se congèle
  • Comment dessiner sur Bitmap dans Android?
  • Opérations composites dans Android Canvas
  • Le fond d'écran se bloque avec une erreur - queueBuffer: erreur de mise en file d'attente de buffer to SurfaceTexture
  • Obtenez la taille mesurée et la position du bitmap sur la toile après la transformation 2D
  • Changement de toile Android couleur d'arrière-plan
  • Implémentant une récolte à main levée dans Android
  • coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.