2015-06-09 94 views
0

美好的一天。我正在構建一個Android應用程序。我正在使用OpenCV3的NativeCameraView LayoutElement,我想在它上面放置一個閃屏圖像。Android - 重疊/重疊一個視圖與飛濺圖像?

原來的佈局是這樣的:

<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相機飼料。然後,我可以對我喜歡的任何方式進行圖像處理。

但是,我想添加一個飛濺圖像疊加在它的正上方。我所做的就是添加一個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> 

然而,沒有工作爲好,即使我換他們的立場。

最後,我也用的FrameLayout這樣:

<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> 

但無濟於事

誰能幫助我與我的佈局問題?我覺得我在這裏忽略了一些簡單的東西。謝謝你的幫助。

回答

0

只需使用layout_above或layout_below。

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_above="@+id\relativeLayout1"> 
<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="@+id\relativeLayout1"> 
    <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> 

+0

我不知道我是否做錯了,但'layout_below'把視圖放在下面,不在下面,這是我正在尋找的。 – Razgriz

0

的LinearLayout爲視圖由一個線性一個堆垛層。

FrameLayout用於堆疊在彼此頂部的視圖。

相對佈局適用於更復雜的視圖。具有視圖之間的相對屬性。

+0

介意說明一下,並舉例說明使用我的代碼? – Razgriz

+0

http://developer.android.com/guide/topics/ui/declaring-layout.html#CommonLayouts – EE66

+0

http://android-developers.blogspot.co.il/2009/02/android-layout-tricks-1 .html – EE66