我有一个带有drawable背景的GLSurfaceView,但是如果不使用surfaceView.setZOrderOnTop(true)渲染,只有背景可见。
我需要避免使用setZOrderOnTop(true),因为在GLSurfaceView上方还有静态TextView。
有什么建议可以让这个工作起来吗?
我有一个带有drawable背景的GLSurfaceView,但是如果不使用surfaceView.setZOrderOnTop(true)渲染,只有背景可见。
我需要避免使用setZOrderOnTop(true),因为在GLSurfaceView上方还有静态TextView。
有什么建议可以让这个工作起来吗?
GLSurfaceView无法真正拥有背景。SurfaceView的工作方式是通过在Activity窗口中挖一个洞并显示另一个表面来实现的。设置setZOrderOnTop(true)将表面移动到Activity窗口之上。
不是的!您可以做到。 这只是一个示例,展示它如何运作。
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);
既然GLSurfaceView只是另一个视图,为什么不使用FrameLayout将GLSurfaceView放置在ImageView之上(或者您正在使用的其他显示可绘制对象的视图上)。