【问题标题】:Background transparency in libgdxlibgdx 中的背景透明度
【发布时间】:2013-07-31 09:18:49
【问题描述】:

如果我在 Android 中使用 libgdx,如何使屏幕背景透明?

我尝试使用的代码不起作用。

Gdx.gl.glClearColor( 0, 0, 0, 0 );
Gdx.gl.glClear( GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT );

【问题讨论】:

  • 背景是什么意思?实际上,您所做的只是清除没有颜色的屏幕。如果你想要一些透明的东西,你需要一些背景和闪耀的东西。你不能让窗口和它的内容是透明的,这样你才能看到桌面!请给我们更多信息你想做什么?
  • 你可以使用.setAlpha(150);

标签: android opengl-es background libgdx


【解决方案1】:

刚刚找到解决办法!

只需将此代码添加到扩展 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);
}

【讨论】:

  • 也作为一个片段工作,如果你的片段扩展 AndroidFragmentApplication 并且在 onCreateView 上你将后面的部分应用到你刚刚初始化的视图上...为我工作 :) 不要忘记不要做 Gdx渲染上的 .gl.glClearColor
  • 设置“setZOrderOnTop(true);”后如何在glView之上添加其他android视图?
【解决方案2】:

这样想 - 当你至少有两件事时,透明度是可见的。如果你有一个黑色背景,然后在它上面画一个白色的,透明度说 50%,你会通过你的白色层看到黑色背景。现在,一开始你就有了屏幕。它可以是任何颜色。在那个屏幕下,什么都没有。因此,如果您需要透明度,请使用 Alpha 通道在其上绘制一些东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-16
    • 2022-01-23
    • 2018-01-07
    • 2018-02-12
    • 2011-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多