Así que uso Canvas.drawText para dibujar una cadena en un Lienzo. El problema es que quiero dibujar un rectángulo antes de que aparezca para que el texto aparezca centrado en el rectángulo. Pero llegué a un problema real. El suministrada x y y coordina a drawText en realidad no son de la "parte superior izquierda " esquina del texto real, sino más bien en la línea donde comienzan los personajes. Hay un método Paint.getTextBounds que devuelve un rectángulo "con origen implícito" en (0,0) del texto que se dibujará. El problema es que el origen está en (0,0). El ancho y la altura de esa caja son correctos, pero no sé cómo colocar su esquina superior izquierda en la esquina superior izquierda de la cadena que se dibuja en el lienzo. Supongo que debería usar FontMetrics, pero como muchos de los valores de FontMetrics no están documentados, no estoy seguro de cómo usarlos para mi propósito.Encaja un rectángulo alrededor de una cadena en un lienzo de Android
Respuesta
que terminé haciendo
FontMetrics fm = new FontMetrics();
paint.setTextAlign(Paint.Align.CENTER);
paint.getFontMetrics(fm);
canvas.drawText(text, x, y + -(fm.ascent + fm.descent)/2, paint);
Que en realidad dibuja el texto centrado en x, y. Antes de que dibujo un rectángulo centrado en x, y con un ancho de paint.measureText (texto)
tratar rectángulo dibujo utilizando
canvas.drawRect(x, y - Paint.GetTextSize(), x + Paint.measureText("text"), y, Paint);
Creo que esto funcionaría, aunque terminé haciendo otra cosa que también trabajó para mí por lo que ahora No puedo intentarlo para ver si este método funciona. Gracias de todos modos :) –
¿Qué es esto x y y? – ranjith
En este contexto, x e y son donde OP está dibujando texto, la respuesta es dibujar un recuadro alrededor de este texto. – eyespyus
- 1. Girar el rectángulo alrededor de un punto
- 2. ¿Cómo dibuja Qt un borde alrededor de un rectángulo?
- 3. Cómo dibujar un rectángulo de líneas discontinuas en el lienzo?
- 4. Android: animar un rectángulo
- 5. Sombra de efecto en lienzo rectángulo
- 6. Voltear un lienzo de Android
- 7. Cómo dibujar un rectángulo redondeado en el lienzo HTML?
- 8. Cómo recortar un rectángulo de una imagen en android
- 9. Android: dibujar un lienzo en un ImageView
- 10. Gire el rectángulo alrededor de su centro
- 11. Silverlight 3 - Enlace de datos de posición de un rectángulo en un lienzo
- 12. Lienzo de relleno fuera del rectángulo
- 13. Rectángulo en HTML5 El lienzo está estirado
- 14. ¿Por qué hay un rectángulo rectángulo y un rectángulo de límites en una UIView?
- 15. Hacer una cadena de texto llenar un rectángulo
- 16. ¿Cómo puedo crear un "resplandor" alrededor de un rectángulo con svg?
- 17. Desplazar un lienzo suavemente en Android
- 18. ¿ITIL encaja en un mundo Ágil?
- 19. Envoltura larga de texto en un lienzo de Android
- 20. Rotación de imagen en un lienzo en Android
- 21. Android dibuja un círculo alrededor del texto
- 22. ¿Cómo puedo convertir un rectángulo en un rectángulo?
- 23. Lienzo HTML: trazo punteado alrededor del círculo
- 24. Cómo dibujar un triángulo relleno en un lienzo Android?
- 25. Android View.onDraw() siempre tiene un lienzo limpio
- 26. convertir una línea en un rectángulo
- 27. Girando alrededor de un punto arbitrario: HTML5 Canvas
- 28. Java: rellenar un rectángulo en una cuadrícula
- 29. Convertir una cadena en un Uri ... (Android)
- 30. Android dibujar texto en un rectángulo en el centro y recortarlo si es necesario
He tenido problemas para dibujar el texto de ese centro en un rectángulo por un tiempo. ¡Muchas gracias! –