您好我一直试图将GLSurfaceview叠加到现有视图上。下面的代码显示了我如何叠加。唯一不起作用的是glsurfaceview的透明度。
view = new GLSurfaceView(this);
view.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
view.getHolder().setFormat(PixelFormat.TRANSLUCENT);
view.setRenderer(new Level1Renderer(this));
setContentView(R.layout.test);
addContentView(view, new LayoutParams(100,400));
然后我将渲染器中的背景颜色设置为
gl.glClearColor(0.0f, 0.0f, 0.0f, 0);
有人可以告诉我我要遗漏的内容吗?
答案 0 :(得分:3)
代码是正确的,您可能想要添加
glView.setZOrderOnTop(true);
glView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
(如果你的视图被其他视图隐藏,你需要它在顶部。)
答案 1 :(得分:1)
我也有这个问题。我试图通过补间覆盖glSurfaceView(以及其他)的视图的alpha值来“淡化”我的整个屏幕。其他视图都褪色,但不是glSurfaceView。
我发现glSurfaceView上的setZOrderMediaOverlay(true)
...而不是setZOrderOnTop(true)
对我有效。