重叠/覆盖一个视图与一个splash图像



我正在构建一个Android应用程序。我使用的是OpenCV3的NativeCameraView LayoutElement,我想在它上面放一个splash图像。

原来的布局是这样的:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:opencv="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/baseRelativeLayout">
    <org.opencv.android.NativeCameraView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:alpha="0.7"
        android:id="@+id/color_blob_detection_activity_surface_view" />
</RelativeLayout>

它向我展示了使用Open CV的NativeCameraView的相机馈电。然后我可以用我喜欢的任何方式处理图像。

然而,我想在它的正上方添加一个splash图像叠加。我所做的是添加一个imageView,如下:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/imageViewSplashScreen"
    android:alpha="0.7"
    android:visibility="visible"
    android:src="@drawable/screen_1"
    android:contentDescription="splashScreen"/>

然而,即使设计"选项卡显示我的闪屏imageView在OpenCV的cameraView之上,我的应用程序根本不显示闪屏图像。

然后我尝试将openCV相机对象和ImageView放在单独的相对视图上,如:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        xmlns:opencv="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/baseRelativeLayout">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/imageViewSplashScreen"
            android:alpha="0.7"
            android:visibility="visible"
            android:src="@drawable/screen_1"
            android:contentDescription="splashScreen"/>
    </RelativeLayout>
    <!--<org.opencv.android.JavaCameraView-->
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <org.opencv.android.NativeCameraView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:alpha="0.7"
            android:id="@+id/color_blob_detection_activity_surface_view" />
    </RelativeLayout>
</RelativeLayout>

然而,即使我交换了它们的位置,这也不能很好地工作。

最后,我还使用了framayout:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:opencv="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/baseRelativeLayout">
    <org.opencv.android.NativeCameraView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/color_blob_detection_activity_surface_view"/>
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/imageViewBitmapResult"
        android:visibility="gone"
        android:contentDescription="resultScreen"/>
</FrameLayout>

但无济于事。

如何解决这个布局问题?我觉得我忽略了一些简单的东西。

只需使用layout_above或layout_below。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@+idrelativeLayout1">
<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/imageViewSplashScreen"
    android:alpha="0.7"
    android:visibility="visible"
    android:src="@drawable/screen_1"
    android:contentDescription="splashScreen"/>
</RelativeLayout>
<!--<org.opencv.android.JavaCameraView-->
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+idrelativeLayout1">
    <org.opencv.android.NativeCameraView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:alpha="0.7"
        android:id="@+id/color_blob_detection_activity_surface_view" />
</RelativeLayout>

LinearLayout用于视图一个一个线性堆叠。

FrameLayout用于视图堆叠。

相对布局用于更复杂的视图。

相关内容

  • 没有找到相关文章

最新更新