我的应用程序由背景图像、包含3D对象的glSurfaceView和顶部的两个按钮组成(从后往前排序)。我想让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不再透明,我无法看到图像背景。我已经解析了所有其他主题,但没有一个能给我满意的答案。
TextureView
。 - Shakti