我有一个RelativeLayout,其中包含一个自定义SurfaceView和其他必须在SurfaceView上绘制的元素。我还需要SurfaceView是透明的。 我试过这个答案:how to make surfaceview transparent。但是使用setZOrderOnTop(true),RelativeLayout中SurfaceView上的其他元素显示在Surface上方(如果表面有油漆,则部分隐藏)。
我该如何解决这个问题?感谢
答案 0 :(得分:3)
将持有人像素格式设置为RGBA_8888,
sv.setZOrderOnTop(true); //very much necessary
getHolder().setFormat(PixelFormat.RGBA_8888);
答案 1 :(得分: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);