per il mio gioco, sto pensando di disegnare elementi dell'interfaccia utente (TextView per la visualizzazione di tempo trascorso, i pulsanti per mettere in pausa/gioco riavvio) in cima alla mia GLSurfaceView
usando RelativeLayout ...Disegno Android UI in cima GLSurfaceView
Fino ora, stavo disegnando tutti gli elementi dell'interfaccia utente direttamente su surfaceView ma considerando le ampie opzioni disponibili nell'interfaccia utente di Android (come cambiare il carattere tipografico di font e colori), ho deciso di usarlo.
Domande:
- E 'buona pratica per disegnare elementi dell'interfaccia utente in cima
GLSurfaceView
o è meglio disegnare tutta la roba UI me direttamente aGLSurfaceView
? - Aggiornerò il contenuto degli elementi dell'interfaccia utente (dire
TextView
) regolarmente (per ogni 16 ms) utilizzando il metodorunOnUiThread()
... È negativo? - Il mio gioco sarà suscettibile di chiusura forzata?
Ecco il codice Java di prova che sto usando per impostare il RelativeLayout ... glView
è l'istanza GLSurfaceView
.
rl = new RelativeLayout(this);
rl.addView(glView);
tv = new TextView(this);
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_TOP);
tv.setLayoutParams(lp);
tv.setText("FPS: 0");
tv.setBackgroundColor(0x4060ff70);
rl.addView(tv);
setContentView(rl);
Sì ... ha senso ... prenderesti in considerazione l'altra domanda che ho postato qualche tempo fa? http://stackoverflow.com/questions/14522715/passing-instructions-from-ui-thread-to-rendering-thread-glsurfaceview – BLOB