在没有setZOrderOnTop(true)的情况下使SurfaceView透明
我有一个RelativeLayout,它包含一个自定义的SurfaceView和其他必须绘制在SurfaceView上的元素。 我也需要SurfaceView透明。 我试过这个答案:如何使表面视图透明。 但是使用setZOrderOnTop(true)时,RelativeLayout中的SurfaceView上的其他元素显示在Surface上方(如果表面具有某种颜色,则会部分隐藏)。
我怎么解决这个问题? 谢谢
将持有者像素格式设置为RGBA_8888,
sv.setZOrderOnTop(true); //very much necessary
getHolder().setFormat(PixelFormat.RGBA_8888);
我用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);
链接地址: http://www.djcxy.com/p/11449.html
上一篇: Make a SurfaceView transparent without setZOrderOnTop(true)