Для моей игры я думаю о рисовании элементов пользовательского интерфейса (TextView для отображения прошедшего времени, кнопок для приостановки/перезапуска игры) поверх моего GLSurfaceView
с использованием RelativeLayout...
До сих пор я сам рисовал все элементы пользовательского интерфейса непосредственно в SurfaceView, но, учитывая широкие возможности, доступные в пользовательском интерфейсе Android (например, изменение шрифта шрифта и цвета), я решил использовать его.
Вопросы:
- Является ли хорошей практикой рисовать элементы пользовательского интерфейса поверх
GLSurfaceView
или лучше самому рисовать все элементы пользовательского интерфейса непосредственно наGLSurfaceView
? - Я буду регулярно обновлять содержимое элементов пользовательского интерфейса (скажем,
TextView
) (каждые 16 мс), используя методrunOnUiThread()
... Это плохо? - Будет ли моя игра подвержена принудительному закрытию?
Вот тестовый Java-код, который я использую для настройки RelativeLayout... glView
- это экземпляр 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);