2010-10-26 8 views
5

Sono assolutamente nuovo alla programmazione Android (ho fatto solo alcuni tutorial/letto le guide di sviluppo ecc.) E come ogni principiante voglio fare un gioco inutile :-).Combinazione di SurfaceView con altre visualizzazioni come TextView e Pulsanti

Attualmente sto lottando con il layout delle diverse visualizzazioni. Simile all'esempio, ho creato una classe che estende uno SurfaceView e lo inserisce in un FrameLayout. Intorno a questo SurfaceView voglio avere altri View come Buttons & TextViews. Qualcosa di simile a questo:

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

sono riuscito a fare qualcosa di simile con un FrameLayout e RelativeLayouts (attaccare l'TextViews ai bordi dello schermo), ma mi piacerebbe controllare meglio la dimensione del SurfaceView come dovrebbe essere un multiplo in larghezza e altezza degli oggetti che vi attingo. Ho provato a impostare layout_width e layout_height in alcuni valori di dp, ma quando inizio a dipingere a 0,0 è ancora nell'angolo in alto a sinistra (dove lo TextView è ..).

Quindi, qual è la procedura migliore per ottenere un layout come sopra? Usando quale layout? Oppure dovrei disegnare meglio il mio testo all'interno della funzione draw() del mio SurfaceView?

+0

Dovresti pubblicare il tuo xml per dare alle persone un indizio migliore di quale potrebbe essere il problema. – MikeIsrael

risposta

6

I layout sono il modo giusto per combinare il contenuto OpengGL con pulsanti, etichette e altri tipi di oggetti vista. Puoi combinare i layout all'interno di altri layout ... così puoi costruire il tuo schermo passo dopo passo combinando i layout lineari o qualsiasi altra cosa tu preferisca.

Ad esempio, è possibile utilizzare un layout relativo per impostare i tasti (B1, B2) e il resto dello schermo:

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

poi dentro la Zona 1, è possibile utilizzare un layout orizzontale lineare per la 3 colonne principali

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

All'interno di C2 è possibile inserire il SurfaceView, e in C1 l'etichetta di testo

All'interno c3 sarà un nuovo layout verticale lineare per visualizzare il testo la bels.

+----+ 
| t1 | 
+----+ 
| t2 | 
+----+ 
| t3 | 
+----+ 
Problemi correlati