2010-03-23 3 views
7

Possible en double:
Android OpenGL ES Transparent BackgroundAndroid, Transparent sous-GLSurfaceView dans la mise en page?

Je voudrais afficher un objet 3D sur le dessus de l'écran normal 2d de mise en page ui.

L'écran 2d ui a une image d'arrière-plan et GLSurfaceView est l'enfant de la mise en page du contenu.

J'ai essayé la même technique du GLSurfaceView Translucide dans l'échantillon de ApiDemos,

mais GLSurfaceView efface tout et montre fond noir.


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"  
    android:background="@drawable/my_background_image" 
> 

... 

<android.opengl.GLSurfaceView android:id="@+id/glview" 
    android:layout_width="fill_parent" 
    android:layout_height="300px" 
    android:windowIsTranslucent="true" (i'm not sure this is right) 
/> 
</LinearLayout> 

setContentView(R.layout.main); 
... 
glview = (GLSurfaceView) findViewById(R.id.glview); 
glview.setEGLConfigChooser(8, 8, 8, 8, 16, 0); 
glview.getHolder().setFormat(PixelFormat.TRANSLUCENT); 
glview.setRenderer(this); 
... 
gl.glClearColor(0, 0, 0, 0); 
... 

Puis-je conserver l'image de fond sous-jacente dans cette situation?

Répondre

25

cette résolu pour moi:

glview = (GLSurfaceView)findViewById(R.id.glview); 

    glview.setEGLConfigChooser(8,8,8,8,16,0); 

    glview.setRenderer(new MyRenderer(this)); 
    glview.getHolder().setFormat(PixelFormat.TRANSLUCENT); 

    // this made it work for me - works only from sdk level 6 on, though.... 
    glview.setZOrderOnTop(true); 
+0

merci, c'est ce que je veux. – efeyc

+2

@ P.Melch Ceci rend GlSurfaceView au-dessus de toutes les vues. Maintenant, je suis incapable de définir une autre vue sur GlSurfaceView. Existe-t-il un autre moyen de rendre le GlSurfaceView transparent. –

+0

@ P.Melch Même problème Zorder-top fait passer l'autre vue derrière GLsurfaceview – ask4solutions