Android GLSurfaceView with drawable background

2019-04-08 17:24发布

I have a GLSurfaceView with a drawable as background, however only the background is visible when rendered without surfaceView.setZOrderOnTop(true)

I need to avoid using setZOrderOnTop(true) because there are static TextView's being used on top of the GLSurfaceView.

Any suggestions for getting this to work?

4条回答
我欲成王,谁敢阻挡
2楼-- · 2019-04-08 17:51

GLSurfaceView cannot really have a background. The way a surface view works is by cutting a hole through your Activity's window and showing another surface behind. Setting setZOrderOnTop(true) moves the surface above the Activity's window.

查看更多
ゆ 、 Hurt°
3楼-- · 2019-04-08 17:56

Well, since GLSurfaceView is just another view, why not use a FrameLayout to place the GLSurfaceView on top of the ImageView (or whatever you're using to display the drawable.)

查看更多
\"骚年 ilove
4楼-- · 2019-04-08 18:00

Try setZOrderMediaOverlay(true); which should put the gl layer above the background but below the window.

查看更多
beautiful°
5楼-- · 2019-04-08 18:07

false! You can do it. Just an example to show how it works.

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);

Then use framelayout to put a view under glsurfaceview!

查看更多
登录 后发表回答