6

嗨,我一直在尝试将 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);

有人可以告诉我我遗漏了什么吗?

4

2 回答 2

3

代码是正确的,您可能需要添加

glView.setZOrderOnTop(true);
glView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

(如果您的视图被其他视图隐藏并且您需要它在顶部。)

于 2012-02-08T21:27:12.697 回答
1

我也有这个问题。我试图通过补间覆盖 glSurfaceView (以及其他)的视图的 alpha 值来“淡化”我的整个屏幕。其他视图都消失了,但 glSurfaceView 没有。

我发现setZOrderMediaOverlay(true)……而不是setZOrderOnTop(true)在 glSurfaceView 上为我工作。

于 2013-03-17T00:19:30.530 回答