0

我有一个相当简单的布局,带有一个图像,一些文本视图包裹在一个垂直的 LinearLayout 中。每当我将此布局的背景设置为 9patch 时,布局的高度似乎设置为 9patch 的高度(即使 9patch 似乎成功拉伸为布局的高度。)

如果我使用纯色背景色,则布局的高度会按预期工作。

这是 9patch 的截图:

在此处输入图像描述

这是一个带有纯色背景而不是 9patch 的屏幕截图(注意文本现在如何在布局中居中):

在此处输入图像描述

最后,这是 XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/show_gray"
    android:gravity="center_vertical"
    android:orientation="horizontal" android:weightSum="5">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="4"
        android:scaleType="centerCrop"
        android:src="@drawable/temp_featured_banner" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="#FF0000"
        android:gravity="center"
        android:orientation="vertical"
        android:paddingLeft="30dp" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Large Text"
            android:textColor="@color/white" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Small Text"
            android:textColor="@color/white" />
    </LinearLayout>

</LinearLayout>

...为了以防万一,这里是 draw9patch 的屏幕截图,显示了我的 9patch 可绘制对象:

在此处输入图像描述

我怀疑 LinearLayout 没有高于 9patch 的自然尺寸(所以没有什么可以拉伸的......),所以我将 9patch 的高度降低了 50%。问题依然存在。

有任何想法吗?

4

2 回答 2

1

在 9-patch 程序中,在底部和右侧画线以选择可以“折叠”的区域。可能会解决你的问题。

http://developer.android.com/guide/developing/tools/draw9patch.html

于 2012-04-04T16:56:47.770 回答
1

九个补丁的顶部和左侧指的是图像的“可拉伸”区域。九个补丁的右侧和底部定义了内容应该去哪里 - 目前,您只是告诉它猜测(它通过将所有内容放在左上角指定的行中来猜测)。从我从您的图像中可以看出,您可能需要在九个补丁的右侧从上到下的实心黑线(当然,不包括角落),以及与右上角的黑点匹配的点底部。这告诉操作系统将内容与图像相关的位置放在哪里,以便它更好地知道如何拉伸图像。

于 2012-04-04T20:35:37.310 回答