Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Background transparency in libgdx

How can I make background of screen transparent if I use libgdx in Android?

The code I tried to use doesn't work.

Gdx.gl.glClearColor( 0, 0, 0, 0 );
Gdx.gl.glClear( GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT );
like image 997
user1730694 Avatar asked Dec 08 '22 13:12

user1730694


2 Answers

Just found a solution!

Just add this code to the class that extends AndroidApplication.

AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.r = cfg.g = cfg.b = cfg.a = 8;

cfg.useGL20 = false;

View view = initializeForView(new LineDrawing(), cfg);

if (graphics.getView() instanceof SurfaceView) {
            SurfaceView glView = (SurfaceView) graphics.getView();
            glView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
            glView.setZOrderOnTop(true);
}
like image 76
user1730694 Avatar answered Dec 28 '22 22:12

user1730694


Think it this way - transparency is visible when you have at least two things. If you have a black background and then draw a white one on top of it with transparency say 50%, you will see black background through your white layer. Now, at the start you have the screen. It can be of any color. Under that screen, there's nothing. So, if you need transparency, draw something on top of it with alpha channel.

like image 28
Sajal Dutta Avatar answered Dec 28 '22 23:12

Sajal Dutta