具有可绘制背景的Android GLSurfaceView

时间:2010-10-02 00:30:31

标签: android opengl-es background drawable glsurfaceview

我有一个带有drawable作为背景的GLSurfaceView,但是在没有surfaceView.setZOrderOnTop(true)的情况下渲染时只能看到背景

我需要避免使用setZOrderOnTop(true),因为在GLSurfaceView的顶部使用了静态TextView。

有任何关于让它发挥作用的建议吗?

4 个答案:

答案 0 :(得分:9)

GLSurfaceView无法真正拥有背景。表面视图的工作方式是在Activity的窗口中切出一个洞,并在后面显示另一个表面。设置setZOrderOnTop(true)将表面移动到Activity的窗口上方。

答案 1 :(得分:6)

假!你能行的。 只是一个展示它是如何工作的例子。

glRenderer  = new OpenGLRenderer(context);
view = new GLSurfaceView(context);
view.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
view.setRenderer(glRenderer);
view.getHolder().setFormat(PixelFormat.RGBA_8888);
view.getHolder().setFormat(PixelFormat.TRANSLUCENT);
view.setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);

然后使用framelayout在glsurfaceview下放置一个视图!

答案 2 :(得分:2)

尝试setZOrderMediaOverlay(true);应该将gl层放在背景上方但在窗口下方。

答案 3 :(得分:1)

好吧,因为GLSurfaceView只是另一个视图,为什么不使用FrameLayout将GLSurfaceView放在ImageView之上(或者你用来显示drawable的任何东西。)