如果我在 Android 中使用 libgdx,如何使屏幕背景透明?
我尝试使用的代码不起作用。
Gdx.gl.glClearColor( 0, 0, 0, 0 );
Gdx.gl.glClear( GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT );
如果我在 Android 中使用 libgdx,如何使屏幕背景透明?
我尝试使用的代码不起作用。
Gdx.gl.glClearColor( 0, 0, 0, 0 );
Gdx.gl.glClear( GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT );
刚刚找到解决办法!
只需将此代码添加到扩展 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);
}
这样想——当你至少有两件事时,透明度是可见的。如果你有一个黑色背景,然后在它上面画一个白色的,透明度说 50%,你会通过你的白色层看到黑色背景。现在,一开始你就有了屏幕。它可以是任何颜色。在那个屏幕下,什么都没有。因此,如果您需要透明度,请使用 Alpha 通道在其上绘制一些东西。