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