Вы можете вручную создавать и добавлять представления в представление содержимого действия. В методе onCreate в Activity после выполнения setContentView в GLSurfaceView или с помощью XML-макета вы можете сделать следующее, добавив кнопку в верхнюю часть GLSurfaceView в верхнем левом углу:
Button b = new Button(this);
b.setText("Hello World");
this.addContentView(b,
new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
Если вы хотите, чтобы кнопка находилась где-то еще на экране, вам нужно добавить ее в макет, а затем добавить этот макет в представление содержимого. Чтобы кнопка находилась в центре экрана, вы можете сделать следующее:
LinearLayout ll = new LinearLayout(this);
Button b = new Button(this);
b.setText("hello world");
ll.addView(b);
ll.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL);
this.addContentView(ll,
new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
Если вам нужна кнопка в нижней части экрана, вы можете использовать Gravity.BOTTOM вместо Gravity.CENTER_VERTICAL и т. Д.
Убедитесь, что вы вызываете метод return super.onTouch ... в методах событий касания, если ваш GLSurfaceView перехватывает касания или ваша кнопка не будет получать события касания.