user1730694
user1730694

Reputation: 472

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 );

Upvotes: 5

Views: 5729

Answers (2)

user1730694
user1730694

Reputation: 472

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);
}

Don't forget to remove Gdx.gl.glClearColor from your render() method.

For fragment, use the same code inside your onCreateView method.

Upvotes: 14

Saj
Saj

Reputation: 18702

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.

Upvotes: 1

Related Questions