GLSurfaceView:透明背景和叠加视图

时间:2014-05-13 10:40:43

标签: android opengl-es opengl-es-2.0

我需要一个带有透明背景 GLSurfaceView (因为我需要在其下方看到一个视图)并且我已使用以下代码成功创建了它:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/test"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:src="@drawable/test" />


    <android.opengl.GLSurfaceView
        android:id="@+id/surfaceView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/bar" />

    <ImageView
        android:id="@+id/view_test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:padding="10dp"
        android:src="@drawable/ic_test" />

</RelativeLayout>

据我所知,使GLSurfaceView透明的唯一方法是将 view.setZOrderOnTop(true)添加到GLSurfaceView。以下是我如何声明GLSurfaceView:

mGlSurfaceView.setZOrderOnTop(true); //this is the line of code that is causing my problem
mGlSurfaceView.setEGLConfigChooser(8, 8, 8, 8, 16, 0);
mGlSurfaceView.setEGLContextClientVersion(2);
mGlSurfaceView.getHolder().setFormat(PixelFormat.RGBA_8888);
mGlSurfaceView.setRenderer(mRenderer);
mGlSurfaceView.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
mGlSurfaceView.requestRender();

现在,将ZOrderOnTop标志设置为true,我不能再看到在xml中位于GLSurfaceView之后的ImageView。

我的问题:是否存在将视图放在透明GLSurfaceView上的方法?

0 个答案:

没有答案