高度为 match_parent 的 ImageView 背景不起作用

ImageView background with height match_parent doesn't work

这里有些地方不太好用。

我需要:用带有图案背景的 ImageView 填充 RelativeLayout 的一部分。

我做了什么:如果我将定义的数字(在 DP 中)放到 ImageView 高度,它就可以工作。但这不是我需要的,因为 RelativeLayout 有一个 wrap_content 高度。我需要模式填充所有相对的,顶部和底部的边距为 13dp。 (和 10dp 宽度)。

如果我将 match parent 设置为 ImageView 高度(我认为这是正确的解决方案),它不起作用(它只显示一条线)。

这是我需要的: http://postimg.org/image/csr16zccn/

这是RelativeLayout的代码:

<RelativeLayout 
    android:id="@+id/relative2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/relative" 
    android:paddingBottom="13dp"
    android:paddingTop="13dp" >

<ImageView
    android:id="@+id/pattern"
    android:layout_width="10dp"
    android:layout_centerVertical="true"
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true"
    android:src="@drawable/row_pattern" />  

<TextView
    android:id="@+id/title"
    android:layout_width="245dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:paddingLeft="18dp"
    style="@style/p_general" />
</RelativeLayout>

这是 row_pattern.xml

<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/pattern"
    android:tileMode="repeat"
    android:dither="true" />

你可以为你的 ImageView 设置 layout_alginTop="@+id/title"layout_alginBottom="@+id/title" 属性,这样你的图片就会填满标题的高度。

<RelativeLayout 
    android:id="@+id/relative2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@+id/relative" 
    android:paddingBottom="13dp"
    android:paddingTop="13dp" >

<TextView
    android:id="@+id/title"
    android:layout_width="245dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:paddingLeft="18dp"
    style="@style/p_general" />

<ImageView
    android:id="@+id/pattern"
    android:layout_width="10dp"
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_alginTop="@+id/title"
    android:layout_alginBottom="@+id/title"
    android:src="@drawable/row_pattern" /> 
</RelativeLayout>

如果 parent 有 wrap_content,则不能 match_parent child。这没有意义。 child 无法匹配未定义维度的 parent。您可以给 parent 一个高度,或者只给图像一个高度。或者你也可以 wrap_content 你的图像(图像视图知道如何显示你的图像,但在这种情况下它会显示源的分辨率而你可能不希望那样)。