我有一个带有drawable作为背景的GLSurfaceView,但是在没有surfaceView.setZOrderOnTop(true)的情况下渲染时只能看到背景
我需要避免使用setZOrderOnTop(true),因为在GLSurfaceView的顶部使用了静态TextView。
有任何关于让它发挥作用的建议吗?
答案 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的任何东西。)