容器,图像和文本:如何让它一起工作?

时间:2015-04-01 14:05:17

标签: android image layout

好吧,我有一个容器,一个图像和一些文本(在另一个容器内),这样:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="5dp"
    android:layout_margin="10dp"
    android:id="@+id/btn">

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/background"
        android:src="@drawable/background"
        android:scaleType="centerCrop"/>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/icon_left"
            android:layout_gravity="center_vertical" />

        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical">

            <TextView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                custom:fontStyle="bold"
                android:textSize="@dimen/textSizeSmall"
                android:text="Header" />

            <TextView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                custom:fontStyle="regular"
                android:textSize="@dimen/textSizeMicro"
                android:text="Body" />
        </LinearLayout>

    </LinearLayout>
</RelativeLayout>

与ImageView相关联的图像(是的,它是背景图像)大于所有文本的高度。因此,我想在RelativeLayout中“裁剪”它。 但是当我将它设置为fill_parent时,ImageView总是占用全部大小。 :(

我该怎么办?

P.S。:我已经尝试将该图像用作RelativeLayout的背景。也不行。

请尽快帮忙!

2 个答案:

答案 0 :(得分:1)

使用FrameLayout代替RelativeLayout来获取具有相同文本视图大小的背景图片。

修改

我得到了答案here。您可以使用RelativeLayoutlayout_alignTop使用layout_alignBottom来完成此操作。对不起我的第一个错误答案。

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android" >

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/background"
        android:src="@drawable/background"
        android:scaleType="centerCrop"
        android:layout_alignTop="@+id/text_container"
        android:layout_alignBottom="@+id/text_container"/>

    <LinearLayout
        android:id="@+id/text_container"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="left">

        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Header" />

        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="Body" />
    </LinearLayout>
</RelativeLayout>

希望它对你有用。

答案 1 :(得分:-1)

我在这里找到答案:https://stackoverflow.com/a/19405297/406110

好吧,基本上ImageViewtopbottomleftright对齐到TextViews和{{1}的容器}和heigth是k。