将透明GLSurfaceview叠加到android中的现有视图中?

时间:2011-04-06 10:57:50

标签: android transparency overlay glsurfaceview

您好我一直试图将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);

有人可以告诉我我要遗漏的内容吗?

2 个答案:

答案 0 :(得分:3)

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

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

(如果你的视图被其他视图隐藏,你需要它在顶部。)

答案 1 :(得分:1)

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

我发现glSurfaceView上的setZOrderMediaOverlay(true) ...而不是setZOrderOnTop(true)对我有效。