Android GLSurfaceView fondo transparente sin setZOrderonTop

Lo siento por mi inglés.

Mi trabajo se basa en https://github.com/harism/android_page_curl/

Después de muchas horas de investigación, he encontrado algunas soluciones, pero no para todos los problemas que tengo en mi aplicación. Tengo algunos problemas con GLSurfaceView. Tengo un fondo con un relativoLayout, un GLSurfaceView, y una superposición en tapa.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/background" android:layout_width="match_parent" android:background="@layout/backgroundrepeat" android:layout_height="match_parent"> <com.m2y.foxprez.view.CurlView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/openglview" android:layout_width="match_parent" android:layout_height="match_parent"/> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/overlay" android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout> 

Cuando init mi opinión:

 setEGLConfigChooser(8,8,8,8,16,0); setRenderer(renderer); getHolder().setFormat(PixelFormat.TRANSLUCENT); setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); setZOrderMediaOverlay(true); 

En mi renderizador:

 public void onSurfaceCreated(GL10 gl, EGLConfig config) { gl.glClearColor(0f, 0f, 0f, 0f); gl.glShadeModel(GL10.GL_SMOOTH); gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST); gl.glHint(GL10.GL_LINE_SMOOTH_HINT, GL10.GL_NICEST); gl.glHint(GL10.GL_POLYGON_SMOOTH_HINT, GL10.GL_NICEST); gl.glEnable(GL10.GL_LINE_SMOOTH); gl.glDisable(GL10.GL_DEPTH_TEST); gl.glDisable(GL10.GL_CULL_FACE); } public synchronized void onDrawFrame(GL10 gl) { gl.glClearColor(0f,0f,0f,0f); gl.glClear(GL10.GL_COLOR_BUFFER_BIT); gl.glLoadIdentity(); } 

Después de múltiples investigaciones, actualmente estoy bloqueado con este resultado:
Con setZOrderOnTop, tengo fondo, pero la superposición está bajo la vista.
Con setZOrderMediaOverlay, tengo la superposición, pero el fondo es negro.

¿Puede ayudarme alguien?

Esto funcionó para mí:

 final GLSurfaceView glView = (GLSurfaceView) findViewById(R.id.glView); glView.setZOrderOnTop(true); glView.setEGLConfigChooser(8, 8, 8, 8, 16, 0); glView.getHolder().setFormat(PixelFormat.RGBA_8888); glView.setRenderer(new MyRenderer()); glView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY); 

Encontrado aquí: http://andrewhague.wordpress.com/2011/05/24/how-to-set-a-transparent-glsurfaceview/

Me gustaría lograr lo mismo con una vista en la parte superior de un GLSurfaceView y no he encontrado una solución sin limitaciones. En primer lugar, glView.setZOrderOnTop (true) proporciona el fondo transparente correcto, pero la vista siempre está en la parte superior sin importar la secuencia de las vistas de ordenación. En segundo lugar, sin ZOrderOnTop se mantiene la jerarquía de vista pero el fondo GLSurface es negro o el color que se establece con glClearColor (rojo, verde, azul, alfa) en el renderizador. Desafortunadamente, el argumento alfa no tiene ningún efecto al usar este método a menos que

 android:windowIsTranslucent="true" 

Y el problema con esto es que es posible que no quiera perforar un agujero en la vista OS. Debe haber una manera de lograr esto fácilmente para una interfaz de usuario más animada usando openGL. He buscado este sitio y otros sin encontrar una solución.

  • ¿Cómo mostraría una vista como una superposición de otra?
  • Ajuste del tamaño dinámico del diseño en Android
  • Mantenga la altura de RelativeLayout tan pequeña como sea posible, pero aumente la altura de los niños para llenar todo el espacio disponible
  • ¿Cómo puedo eliminar mediante programación una regla existente que se definió en XML?
  • Las dependencias circulares no pueden existir en RelativeLayout, android?
  • Android: onClickListener para relativelayout
  • ¿Qué pasa con setScaleX / setScaleY?
  • ScrollView no está jugando bien con RelativeLayout
  • ¿Cómo evitar la vista superpuesta en el diseño relativo en android?
  • Softkeyboard oculta botón debajo de varias líneas EditText?
  • ImageView no se extiende (Android)?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.