相对布局包含FrameLayout和其他一些组件

时间:2013-11-29 07:47:09

标签: android android-layout relativelayout android-framelayout

首先请原谅我对该主题的可怕命名。

我有以下布局设置:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".PersonDetails" >
    <FrameLayout
        android:id="@+id/bannerLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <ImageView
            android:id="@+id/coverImage"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:scaleType="fitStart"
            android:src="@drawable/default_cover">
        </ImageView>

        <ImageView
            android:id="@+id/thumbImage"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="left|bottom"
            android:scaleType="fitStart"
            android:src="@drawable/fingerprint_ic" />
    </FrameLayout>
    <TextView
        android:id="@+id/textName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textColor="#55FF55"
        android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>

我想要实现的是拥有横幅(就像屏幕顶部的facebook封面)。并在横幅左侧有一张缩略图照片。

横幅的高度应该只占屏幕高度的1/4左右。因为我需要剩余的空间用于其他组件。

在横幅下面,我想要一个TextView(在左侧)和一个右侧的按钮。

到目前为止,我只能将缩略图放在横幅上方,但我不知道如何将它放在左下方(我可以使用marginTop设置它但是,我相信这不是这样做的正确方法)。

有谁知道如何实现这一目标?感谢。

编辑#1:

这是UI

Custom Layout

1 个答案:

答案 0 :(得分:1)

根据您的描述,我认为您想要做出类似的事情:

我使用了带有2个布局的linearlayout作为内容。使用android:layout_weight属性,我们可以使顶部布局占用空间的1/4,而底部布局则使用其余部分。

然后,为了将图标放在顶部布局中,我们使用alignParentBottom使其粘在底部。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PersonDetails"
android:orientation="vertical">


<RelativeLayout
    android:id="@+id/bannerLayout"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1">

    <ImageView
        android:id="@+id/coverImage"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:src="@drawable/default_cover"></ImageView>

    <ImageView
        android:id="@+id/thumbImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:scaleType="fitStart"
        android:src="@drawable/fingerprint_ic" />
</RelativeLayout>



<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="3"
    android:layout_margin="10dp">

    <TextView
        android:id="@+id/textName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="40dp"
        android:text="Large Text"
        android:textColor="#55FF55"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"
        android:layout_alignParentEnd="true"/>

</RelativeLayout>

</LinearLayout>