10

我有一个包含自定义 SurfaceView 和其他必须在 SurfaceView 上绘制的元素的 RelativeLayout。我还需要 SurfaceView 是透明的。我试过这个答案:如何使surfaceview透明。但是使用 setZOrderOnTop(true) 时,RelativeLayout 中 SurfaceView 上的其他元素显示在 Surface 上方(如果表面有油漆,则部分隐藏)。

我怎么解决这个问题?谢谢

4

2 回答 2

3

将持有者像素格式设置为 RGBA_8888,

sv.setZOrderOnTop(true);    //very much necessary

getHolder().setFormat(PixelFormat.RGBA_8888);

于 2012-11-20T02:13:13.447 回答
0

我用setZOrderMediaOverlay(true)代替成功了setZOrderOnTop(true)。它允许 OpenGL SurfaceView 下方和上方的视图。

这是在上下文中:

GLSurfaceView glview = (GLSurfaceView)findViewById(R.id.surface);
glview.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
glview.getHolder().setFormat(PixelFormat.RGBA_8888);
glview.setZOrderMediaOverlay(true);
glview.setEGLContextClientVersion(2);
于 2013-05-05T19:36:00.450 回答