gpt4 book ai didi

android - 如何将 View 放在具有透明背景的 glSurfaceView 之上?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:39 29 4
gpt4 key购买 nike

我的应用程序由(从后到前)图像背景组成,然后是包含 3D 对象的 glSurfaceView 以及位于顶部的 2 个按钮。我希望 GLSurfaceView 的背景是透明的,并且可以看到后面的图像。

我尝试了两种解决方案,但都不令人满意:

mGLSurfaceView = new GLSurfaceView(mContext);
mGLSurfaceView.setEGLContextClientVersion(2);
mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
mGLSurfaceView.setZOrderOnTop(true);
mGLSurfaceView.setRenderer(mRenderer);

在这种情况下,我可以看到背景,但 3D 对象漂浮在所有其他布局的顶部,有时会隐藏按钮。

mGLSurfaceView = new GLSurfaceView(mContext);
mGLSurfaceView.setEGLContextClientVersion(2);
mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
mGLSurfaceView.setZOrderMediaOverlay(true);
mGLSurfaceView.setRenderer(mRenderer);

在那种情况下,我可以看到按钮,但 GLSurfaceView 不再透明并且我看不到图像背景。我已经分析了所有其他主题,但没有一个给我满意的答案。

最佳答案

final GLSurfaceView glView = (GLSurfaceView) findViewById(R.id.glView);

glView.setZOrderOnTop(true);
glView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
glView.getHolder().setFormat(PixelFormat.RGBA_8888);
glView.setRenderer(new MyRenderer());
glView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

由 SO post 给出: Android GLSurfaceView transparent background without setZOrderonTop和原始博客文章: How to set a transparent GLSurfaceView

关于android - 如何将 View 放在具有透明背景的 glSurfaceView 之上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247397/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com