5

我有一个带有可绘制作为背景的 GLSurfaceView,但是在没有 surfaceView.setZOrderOnTop(true) 的情况下渲染时只有背景可见

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

有什么建议可以让它工作吗?

4

4 回答 4

9

GLSurfaceView 不能真正有背景。表面视图的工作方式是在 Activity 的窗口中切出一个孔并在后面显示另一个表面。设置 setZOrderOnTop(true) 会移动 Activity 窗口上方的表面。

于 2010-10-02T04:21:43.993 回答
7

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

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下放一个view!

于 2011-02-19T11:33:32.267 回答
2

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

于 2012-04-04T13:51:26.107 回答
1

好吧,既然 GLSurfaceView 只是另一个视图,为什么不使用 FrameLayout 将 GLSurfaceView 放在 ImageView 的顶部(或者您用来显示可绘制对象的任何东西。)

于 2010-10-02T01:51:34.263 回答