2
\$\begingroup\$

I want to combine the Android UI with libGDX. I want to have half of my screen drawing an animated sprite with the libGDX engine, and the other half of the screen drawing Android UI buttons.

How do I combine the Android UI buttons with libGDX?

\$\endgroup\$
  • \$\begingroup\$ I don't think that is possible. When you initialize an opengl context it kinda puts the screen in 'full screen' mode. I might be wrong though. \$\endgroup\$ – petervaz Jun 18 '13 at 15:30
3
\$\begingroup\$

Libgdx has a great UI package called scene2d. It is specially written for UIs, but can be used for other things also.

https://code.google.com/p/libgdx/wiki/scene2dui

What you will want to do is create a UI stage. During your game loop call stage.draw() after you draw your game so it renders over the top of your game. If you just want to use the UI to receive input then just use Gdx.input.setInputProcessor(...) to set the UI stage as the input processor. If you want the game and the stage to receive input you will need to use an InputMultiplexer.

You add widgets (widgets being things like tables, buttons, and more) to the stage. And then add change listeners to the particular widgets to help control your game.

\$\endgroup\$
3
\$\begingroup\$

Nothing special, it just works. Libgdx view is just a wrapper around an ordinary OpenGL view, you can use it with any layout (including a LinearLayout split in half).

The autogenerated code has an initialize call. This call creates the Libgdx view and displays it using full screen.

If you remove the call, you can instead use initializeForView. This method creates and returns the Libgdx view, but does not display it (nor switches to full screen), so you can place it in any layout you want.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.