0

我必须为 LinearLayout 设置 BackgorundDrawbale。BackgroundDrawable 具有比 LinearLayout 更大的高度,并忽略 XML 布局中定义的高度(除了我不想使用绝对高度而是“wrap_content”) - 因此增加了布局的高度。有没有办法动态缩放 Drawable 而不增加高度?- 或者我是否必须在 Photoshop 中将 Drawable 裁剪到正确的高度?- 必须有另一种方式。

我已经在 StackOverflow 上解决了使用 RelativeLayout 的类似问题。但是我没有得到想要的结果。

我的布局如下所示,它在第一行的 ListView 中使用。布局应该在图像下方结束 - 但它不是因为 Drawable。

第一行的 ListView LinearLayout

目前我正在使用以下 XML 布局。

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

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/foto_detail_bg_cell_0"
        >

    <ImageView
            android:id="@+id/icon"
            android:layout_width="100px"
            android:layout_height="100px"
            android:layout_marginRight="6dip"
            android:layout_marginTop="6dip"
            android:layout_marginBottom="6dip"
            android:src="@drawable/icon"

            />

    <LinearLayout
            android:orientation="vertical"
            android:paddingTop="5dip"
            android:layout_width="0dip"
            android:layout_weight="1"
            android:layout_height="wrap_content"

            >
        <TextView
                android:id="@+id/toptext"
                android:layout_width="fill_parent"
                android:layout_height="0dip"
                android:ellipsize="marquee"
                android:layout_weight="1"
                android:paddingLeft="10dip"
                android:gravity="center_vertical"
                android:textStyle="bold"
                android:textSize="14dip"
                />
        <TextView
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:inputType="textMultiLine"
                android:maxLines="3"
                android:scrollHorizontally="false"
                android:layout_weight="1"
                android:paddingLeft="10dip"
                android:id="@+id/bottomtext1"
                android:singleLine="true"
                android:ellipsize="marquee"
                android:textSize="14dip"

                />

        <TextView
                android:layout_width="fill_parent"
                android:layout_height="0dip"
                android:layout_weight="1"
                android:paddingLeft="25dip"
                android:id="@+id/bottomtext2"
                android:singleLine="true"
                android:ellipsize="marquee"
                android:textSize="14dip"

                />
    </LinearLayout>

</LinearLayout>

我会很高兴得到一些提示。

4

2 回答 2

1

最后,我使背景图像小于布局的高度。现在它会自动缩放(拉伸)到正确的大小。

于 2012-07-07T14:54:29.773 回答
0

使用单个相对布局,并使用换行内容固定高度和宽度。对我来说工作正常的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff"
android:clickable="true"
android:orientation="vertical" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:clickable="true"
    android:gravity="center_vertical"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#000000"
    android:layout_marginTop="10dip"/>

<TextView
    android:id="@+id/textView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/textView1"
    android:gravity="center_vertical"
    android:singleLine="true"
    android:textColor="#000000"/>

    <ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"/>

</RelativeLayout>
于 2012-07-07T13:42:47.157 回答