我的應用程序由圖像背景組成(從後到前),然後是包含3D對象和頂部2個按鈕的glSurfaceView。我希望GLSurfaceView的背景透明,並看到背後的圖像。如何在透明背景的glSurfaceView上放置視圖?
我已經試過兩種解決方案,但他們都不是令人滿意的:
mGLSurfaceView = new GLSurfaceView(mContext);
mGLSurfaceView.setEGLContextClientVersion(2);
mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
mGLSurfaceView.setZOrderOnTop(true);
mGLSurfaceView.setRenderer(mRenderer);
在這種情況下,我可以看到背景,但3D物體浮在所有其他佈局的頂部,有時隱藏按鈕。
mGLSurfaceView = new GLSurfaceView(mContext);
mGLSurfaceView.setEGLContextClientVersion(2);
mGLSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGLSurfaceView.getHolder().setFormat(PixelFormat.TRANSLUCENT);
mGLSurfaceView.setZOrderMediaOverlay(true);
mGLSurfaceView.setRenderer(mRenderer);
在這種情況下,我可以看到按鈕,但GLSurfaceView不再透明,我看不到圖像背景。 我解析了所有其他主題,但沒有一個給我任何滿意的答案。
我也對這個問題的答案進行討論。據我所知,在某些設備上根本不可能。在其他設備上,第二種情況確實會導致透明的SurfaceView。 –
奇怪的是我在Android 2.3上沒有這個問題。只有4. * –
這裏的任何幫助將sweeeeet – Gerard