Ist es möglich, die EditText-Box auf einer GLSurfaceView unter Android zu überlagern?

8

Ich versuche, ein Feld "Spielername" über einem Hintergrund im OpenGL-Menü hinzuzufügen. Ist dies möglich? Ich habe verschiedene Layouts ausprobiert, aber sie scheinen nicht zuzulassen, dass ein EditText-Feld oben angezeigt wird

Was ist die typische Art, so etwas zu tun? Muss ich den Text manuell rendern und Eingaben verarbeiten oder gibt es einen besseren Weg? Es scheint möglich zu sein, den EditText irgendwie über der GLSurfaceView anzuzeigen.

Ash McConnell
quelle
Am Ende habe ich eine EditBox manuell implementiert, um die Texteingabe zu verarbeiten. Es war nicht allzu schwierig, obwohl es nicht so voll ausgestattet war, wie ich es gerne hätte.
Ash McConnell

Antworten:

12

Ich habe den richtigen Weg gefunden, dies zu tun (Dieser Code befindet sich in der Aktivitätsklasse).

view = new MyGLSurfaceView(this, gameHandler);
editBox = new EditText(context);
editBox.setText("Hello Matron");

view.setRenderer(new OpenGLRenderer(gameHandler));
setContentView(view);

addContentView(editBox, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

Der Schlüssel verwendet die addContentView- Methode für die Activity-Klasse, um die editBox über der GLSurfaceView hinzuzufügen.

Hoffe das hilft einigen Googlern :)

Vielen Dank! Asche

Ash McConnell
quelle