PDA

Ver la Versión Completa : [ CONSULTA ] Texto se me sale de la pantalla (Canvas)


ericguti.90
12/06/13, 12:58:06
Estoy haciendo un pequeño juego utilizando SurfaceView y quiero añadirle texto, he utilizado canvas (No se si hay alguna forma mejor de hacerlo) y haciendo pruebas he puesto esto:

canvas.drawText("puntos de todos los monstruos que voy matando y todos los que quedan", 20, 20, estiloTexto);

Donde estiloTexto es un Paint (que me imagino que son las propiedades del texto, me equivoco?)
Bueno el problema es que a la hora de escribir el texto no hace un salto de linea sino que corta el texto y solo se ve el principio de la frase y quiero que se vea toda. En un momento de desesperación había pensado en hacer varios drawText pero claro hay muchos tamaños de pantalla así que estaría en el mismo problema... alguna solución??

Gracias!!!

mocelet
12/06/13, 13:34:35
Una opción es poner un TextView en el layout encima de la SurfaceView... tampoco hace falta pintar todo en el Canvas.

La otra opción es el "hazlo tú mismo", hay métodos para saber cuánto va a ocupar una cadena de caracteres, tendrías que implementarte alguna función que divida en líneas la frase.

ericguti.90
12/06/13, 13:42:21
Una opción es poner un TextView en el layout encima de la SurfaceView... tampoco hace falta pintar todo en el Canvas.

La otra opción es el "hazlo tú mismo", hay métodos para saber cuánto va a ocupar una cadena de caracteres, tendrías que implementarte alguna función que divida en líneas la frase.

En un principio queria poner el textView lo que pasa es que no se como añadir el layout ya que en el SurfaceView no se usa como hago para ponerlo encima? :S

mocelet
12/06/13, 13:51:50
Mete el SurfaceView en un RelativeLayout y luego pon el TextView donde quieras.

ericguti.90
12/06/13, 14:12:01
En un principio queria poner el textView lo que pasa es que no se como añadir el layout ya que en el SurfaceView no se usa como hago para ponerlo encima? :S

Entonces en el "Main" tengo que hacer esto: setContentView(R.layout.main); y luego el intent a gameview.class? o lo dejo con el setContentView(New gameview(this));

Siento si las preguntas te resultan absurdas pero soy bastante novato.. :(

mocelet
13/06/13, 10:26:00
Al final veo que el textview te va a complicar más la vida, si pintas en el Canvas tienes control total sobre cómo pintar el texto, tamaño, etc. Quizá te compense hacerte un método que salte de línea si el texto no cabe.