1

我有一个SurfaceView作为相机的实时预览,一个GLSurfaceView用于绘制一些 OpenGL 对象,最后一个SurfaceView用于显示一些 GUI 元素。我正在尝试GLSurfaceView将. 我试过这个功能,但它不会超过 2秒。有没有办法管理多个s 的 Z 顺序?SurfaceViewSurfaceViewGLSurfaceViewsetZOrderOnTopSurfaceViewView

4

1 回答 1

2

有没有办法管理多个视图的 Z 顺序?

第 1 步:将它们放入支持 Z 轴排序的容器中,例如FrameLayoutRelativeLayout

第 2 步:后面的孩子在 Z 轴上比前面的孩子高,所以适当地对这些孩子进行排序。

例如:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/big"
        android:textSize="120dip"
        android:textStyle="bold"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="@string/small"/>

</RelativeLayout>

第二个按钮(带有android:text="@string/small")将出现在第一个按钮的顶部。

现在,SurfaceViews是不寻常的野兽,如果你能让它们按照你想要的方式工作,我会感到惊讶。如果您android:minSdkVersion是 14 岁或更高,请考虑切换到TextureView.

于 2013-08-07T18:15:43.987 回答