2010-10-26 17 views
5

Soy totalmente nuevo en la programación de Android (solo hice algunos tutoriales/leí las guías de desarrollo, etc.) y como todo novato, quiero hacer un juego inútil :-).Combinación de SurfaceView con otras vistas como TextView y botones

Actualmente estoy luchando con el diseño de diferentes vistas. Similar al ejemplo que hice una clase que extiende un SurfaceView y lo pone en un FrameLayout. Alrededor de este SurfaceView quiero tener otras vistas como Buttons & TextViews. Algo como esto:

----------------------------------------------- 
| TextView | SurfaceView   | TextView | 
|   |      |   | 
------------      ------------ 
|   |      | TextView | 
|   |      |   | 
|   |      ------------ 
|   |      | TextView | 
|   |      |   | 
|   |      ------------ 
|   |      |   | 
|   |      |   | 
----------------------------------------------- 
| Button        Button | 
----------------------------------------------- 

he conseguido hacer algo como esto con un FrameLayout y RelativeLayouts (pegando la TextViews en los bordes de la pantalla) pero me gustaría para controlar mejor el tamaño de la SurfaceView como debería ser un múltiplo en ancho y alto del objeto (s) que dibujaré en él. He intentado configurar layout_width y layout_height con algunos valores de dp, pero cuando empiezo a pintar a 0,0 todavía está en la esquina superior izquierda (donde TextView es ...).

Entonces, ¿cuál es la mejor práctica para lograr un diseño como el anterior? ¿Usando qué diseño? ¿O debería dibujar mejor mi texto dentro de la función draw() de mi SurfaceView?

+0

Debería publicar su xml para dar a las personas una mejor idea de cuál podría ser el problema. – MikeIsrael

Respuesta

6

Los diseños son la forma correcta de combinar el contenido de OpenGL con botones, etiquetas y otro tipo de objetos de visualización. Puede combinar diseños en otros diseños ... para que pueda construir su pantalla paso a paso combinando diseños lineales o lo que prefiera.

Por ejemplo, puede utilizar una disposición relativa a la configuración de los botones (B1, B2) y el resto de la pantalla:

+-----------+ 
| Zone 1 | 
+-----+-----+ 
| b1 | b2 | 
+-----+-----+ 

A continuación, dentro de Zona 1, se puede utilizar un diseño lineal horizontal para la 3 columnas principales

+----+----+----+ 
| c1 | c2 | c3 | 
+----+----+----+ 

Dentro de c2 se puede colocar la SurfaceView, y en c1 la etiqueta de texto

Dentro c3 será un nuevo trazado lineal vertical para mostrar el texto la Bels.

+----+ 
| t1 | 
+----+ 
| t2 | 
+----+ 
| t3 | 
+----+ 
Cuestiones relacionadas