RelativeLayout中的子项与百分比重叠

时间:2014-02-19 15:38:04

标签: android android-layout layout relativelayout

我想将ImageView放在(覆盖)另一个视图的顶部,该视图是使用SurfaceView使用宽度和高度的百分比派生的。但不知道如何实现这一目标。有什么帮助吗?

到目前为止,这是我的代码:

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

    <MyOwnView
        android:id="@+id/my_own_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:layout_weight=".20"
        android:contentDescription="@string/imageview_description"
        android:src="@drawable/background_picture" />

</RelativeLayout>

这就是我想要的:

enter image description here

2 个答案:

答案 0 :(得分:0)

您需要使用框架布局,获取重叠视图。这是一个小例子。

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <View
        android:id="@+id/my_own_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="0dp"
            android:layout_weight="3"
            android:src="@drawable/ic_launcher" />

        <View
            android:id="@+id/my_own_view"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="7" />
    </LinearLayout>

</FrameLayout>

这是一个如何做到这一点的例子。而不是你嵌入另一个布局的图像(在我的例子中,我选择了一个LinearLayout,但它可以是一个RelativeLayout,例如)。在这种内部布局中,您可以照常安排视图。请注意,我使用虚拟视图和Imageview为 weight 提供了一些值。此权重允许您指定百分比。

我希望这会带你走向正确的方向。

答案 1 :(得分:0)

您可以简单地围绕线性布局扭曲ImageView。

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

<MyOwnView
    android:id="@+id/my_own_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent" 
android:layout_height="match_parent">

   <ImageView
       android:layout_width="wrap_content"
       android:layout_height="0dp"
       android:layout_weight=".20"
       android:contentDescription="@string/imageview_description"
       android:src="@drawable/background_picture" />

</LinearLayout>

</RelativeLayout>