Rysowanie interfejsu Android na górze GLSurfaceView
W mojej grze myślę o rysowaniu elementów interfejsu użytkownika (TextView do wyświetlania upływu czasu, Przyciski do wstrzymywania / ponownego uruchamiania gry) nad mojąGLSurfaceView
przy użyciu RelativeLayout ...
Do tej pory sam rysowałem wszystkie elementy interfejsu użytkownika bezpośrednio na powierzchni, ale biorąc pod uwagę szerokie opcje dostępne w interfejsie użytkownika systemu Android (np. Zmiana kroju czcionki i koloru), zdecydowałem się go użyć.
Pytania:
Czy dobrze jest rysować elementy interfejsu użytkownikaGLSurfaceView
lub czy lepiej jest wyciągnąć wszystkie elementy interfejsu użytkownika bezpośrednio doGLSurfaceView
?Będę aktualizować zawartość elementów interfejsu użytkownika (powiedzTextView
) regularnie (na każde 16 ms) za pomocąrunOnUiThread()
metoda ... Czy to źle?Czy moja gra będzie podatna na Force Closes?Oto testowy kod java, którego używam do skonfigurowania RelativeLayout ...glView
jestGLSurfaceView
instancja.
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);