Pergunta

Eu tenho um GlsurfaceView com um desenho como plano de fundo, no entanto, apenas o fundo é visível quando renderizado sem a SurfaceView.SetzOrderOntop (true)

Preciso evitar o uso do setZorderOntop (true), porque há o texto estático sendo usado na parte superior do GlsurfaceView.

Alguma sugestão para fazer isso funcionar?

Foi útil?

Solução

O GlsurfaceView não pode realmente ter um plano de fundo. A maneira como uma vista da superfície funciona é cortando um buraco na janela da sua atividade e mostrando outra superfície para trás. Configurar o setZorderOntop (true) move a superfície acima da janela da atividade.

Outras dicas

falso! Você consegue. Apenas um exemplo para mostrar como funciona.

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

Em seguida, use o Framelayout para colocar uma vista no GlsurfaceView!

Tente setzordermediaoverlay (true); que deve colocar a camada GL acima do fundo, mas abaixo da janela.

Bem, como o GlsurfaceView é apenas mais uma visualização, por que não usar um Framelayout para colocar o GlsurfaceView na parte superior do ImageView (ou o que você está usando para exibir o desenhado.)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top