Pop*_*orn 9 3d android overlay renderer glsurfaceview
我的应用程序由图像背景组成(从后到前),然后是包含3D对象和前2个按钮的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);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我可以看到背景,但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);
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我可以看到按钮,但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);
Run Code Online (Sandbox Code Playgroud)
由SO帖子给出: Android GLSurfaceView透明背景没有setZOrderonTop 和原始博客文章: How to set a透明GLSurfaceView