Fond transparent Android GLSurfaceView sans setZOrderonTop
Désolé pour mon anglais.
Mon travail est basé sur https://github.com/harism/android_page_curl/
Après de nombreuses heures de recherches, j'ai trouvé quelques solutions, mais pas pour toutes les questions de ce que j'ai dans mon application.
J'ai quelques ennuis avec un GLSurfaceView.
J'ai un arrière-plan avec un relativeLayout, un GLSurfaceView, et une superposition sur le dessus.
<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>
Quand je init de mon point de vue :
setEGLConfigChooser(8,8,8,8,16,0);
setRenderer(renderer);
getHolder().setFormat(PixelFormat.TRANSLUCENT);
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
setZOrderMediaOverlay(true);
Dans mon moteur de rendu:
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();
}
Après de multiples recherches, je suis actuellement bloqué avec ce résultat:
avec setZOrderOnTop, j'ai le fond, mais la superposition est sous le point de vue.
avec setZOrderMediaOverlay, j'ai la superposition, mais le fond est noir.
Quelqu'un peut m'aider?
source d'informationauteur user2422856
Vous devez vous connecter pour publier un commentaire.
Cela a fonctionné pour moi:
Trouve ici: http://andrewhague.wordpress.com/2011/05/24/how-to-set-a-transparent-glsurfaceview/
Je voudrais faire la même chose avec une vue sur le sommet d'une GLSurfaceView et je n'ai pas trouvé une solution sans limites. Tout d'abord, glView.setZOrderOnTop(vrai) donne le bon fond transparent, mais la vue est toujours sur le haut, peu importe ce que la séquence de commande de vues. D'autre part, sans ZOrderOnTop le point de vue de la hiérarchie est maintenue, mais la GLSurface arrière-plan est noir ou la couleur est définie avec glClearColor(rouge, vert, bleu, alpha) dans le convertisseur. Malheureusement, l'alpha argument n'a aucun effet lors de l'utilisation de cette méthode, sauf si
et le problème, c'est que vous ne voulez pas percer un trou dans l'OS de la vue. Il devrait y avoir un moyen de faire cela pour le plus animé de l'INTERFACE utilisateur en utilisant openGL. J'ai cherché sur ce site et d'autres sans trouver une solution.
Je suis sur le même problème. J'ai trouvé que vous avez à faire des appels pour
avant l'appel à
Bonne chance!