是否可以在没有 setZOrderOnTop(true) 的情况下使 SurfaceView 透明?

我需要让我的 libGDX GlSufraceView 透明,并有机会在上面添加一些 android 视图。早些时候我使用了下面的代码:


if (graphics.getView() instanceof SurfaceView) {

    GLSurfaceView glView = (GLSurfaceView) graphics.getView();

    glView.setZOrderOnTop(true);

    glView.getHolder().setFormat(PixelFormat.RGBA_8888);

}

但是,这段代码并没有让我有可能在上面添加 android 视图。经过简短的研究,我找到了替代品:glView.setZOrderMediaOverlay(true);. 使用这行代码,我可以显示表面上方的任何视图,但透明变为黑色。


我认为这个问题是由于我的代码是在 setRenderer(...) 之后启动的。在我在 gdx-backend-android 中找到包含 setRenderer(...) 的方法之后。片刻之后,我下载了 libGDX 源代码并在 setRenderer(...) 之前添加了几行,但不幸的是它没有帮助,情况还是一样。


我正在尝试的代码:


1)


GLSurfaceView20 view = new GLSurfaceView20(application.getContext(), resolutionStrategy, config.useGL30 ? 3 : 2);

view.setZOrderOnTop(true);


if (configChooser != null)

    view.setEGLConfigChooser(configChooser);

else

    view.setEGLConfigChooser(config.r, config.g, config.b, config.a, config.depth, config.stencil);


view.getHolder().setFormat(PixelFormat.RGBA_8888);


view.setRenderer(this);

view.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);


return view;

2)


GLSurfaceView20 view = new GLSurfaceView20(application.getContext(), resolutionStrategy, config.useGL30 ? 3 : 2);

if (configChooser != null)

    view.setEGLConfigChooser(configChooser);

else

    view.setEGLConfigChooser(config.r, config.g, config.b, config.a, config.depth, config.stencil);


view.setZOrderOnTop(true);

view.getHolder().setFormat(PixelFormat.RGBA_8888);


view.setRenderer(this);

return view;

3)


GLSurfaceView20 view = new GLSurfaceView20(application.getContext(), resolutionStrategy, config.useGL30 ? 3 : 2);


if (configChooser != null)

    view.setEGLConfigChooser(configChooser);

else

    view.setEGLConfigChooser(config.r, config.g, config.b, config.a, config.depth, config.stencil);


view.getHolder().setFormat(PixelFormat.RGBA_8888);

view.setZOrderMediaOverlay(true);

view.setEGLContextClientVersion(2);


view.setRenderer(this);

return view;

我也发现关于该主题的主题很少,但没有正确的答案。有可能这样做吗?


慕码人8056858
浏览 558回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java