Cómo obtener la altura y el ancho de un texto con Canvas

Estoy desarrollando una aplicación Android 2.2.

Estoy utilizando este método para dibujar un texto en una vista:

public void draw(Canvas c) { p.setColor(Color.WHITE); if(name != null) c.drawText(name, getLeft(), getTop(), p); } 

¿Cómo puedo obtener la altura y el ancho del texto del nombre?

Si hago esto (p es un objeto Paint):

 p.getTextBounds(name, 0, name.length(), bounds); 

Tengo Con name = 'Loading', bounds = Rect(1, -10 - 42, 3); .

No sé por qué consigo este extraño rectángulo.

¿Cualquier pista?

Esta es mi solución posible:

 public class MyView extends ARSphericalView { public String name; public MyView(Context ctx) { super(ctx); inclination = 0; } public void draw(Canvas c) { /* p.setColor(Color.WHITE); if(name != null) c.drawText(name, getLeft(), getTop(), p); */ p.setColor(Color.BLACK); if(name != null) { Rect bounds = new Rect(); c.drawText(name, getLeft(), getTop(), p); setBackgroundColor(Color.WHITE); p.getTextBounds(name, 0, name.length(), bounds); c.drawRect(bounds, p); } } } 

Pero, no funciona. Tengo ese extraño rectángulo.

Un tamaño de texto se mide desde su línea de base, y tiene un ascenso (hacia arriba, así que -y) y descenso (hacia abajo, y). El primer valor y en su rect (-10) es el ascenso, el segundo el descenso (3). El ancho del texto es 41 (42-1). La altura es así | ascenso | Descenso | Es 10 + 3 = 13;

Del p.getFontMetrics() modo p.getFontMetrics() tiene atributos superior e inferior, que describen el mayor ascenso y descenso de la fuente que está utilizando tienen. Si desea calcular la altura de un texto, entonces su Math.abs(p.ascent) + Math.abs(p.descent) También puede medir el ancho de un texto con p.measureText() .

Puede utilizar Paint.setTextSize() para establecer el tamaño del texto y luego pintarlo en el Canvas .

  • Cómo dibujar con una fuente predeterminada de Android en una lona?
  • Destacando el color del texto usando Html.fromHtml () en Android?
  • Cómo configurar una fuente en particular para un texto de botón en android?
  • Imagen de la imagen del botón de Android en el centro y el texto en la parte inferior
  • Android: Iniciar actividad desde un texto que se puede hacer clic
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.