2010-03-23 36 views
7

thể trùng lặp:
Android OpenGL ES Transparent BackgroundAndroid, Trong suốt GLSurfaceView trong bố cục?

Tôi muốn hiển thị một số đối tượng 3d trên cùng của màn hình bố trí ui 2d bình thường.

Màn hình 2ngày có hình nền và GLSurfaceView là con của bố cục nội dung.

Tôi đã thử các kỹ thuật tương tự của Translucent GLSurfaceView trong mẫu ApiDemos,

nhưng GLSurfaceView xóa tất cả và cho thấy nền đen.


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

Tôi có thể giữ gìn hình nền cơ bản trong tình huống này?

Trả lời

25

này giải quyết nó cho tôi:

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

cảm ơn, đó là những gì tôi muốn. – efeyc

+2

@ P.Melch Điều này làm cho GlSurfaceView ở trên cùng của tất cả các khung nhìn. Bây giờ tôi không thể đặt chế độ xem khác trên GlSurfaceView. Có cách nào khác để làm cho GlSurfaceView trong suốt hay không. –

+0

@ P.Melch Cùng một vấn đề Zorder-top làm cho một góc nhìn khác đi sau GLsurfaceview – ask4solutions

Các vấn đề liên quan