如何删除9-patch背景中的填充以进行textview

时间:2013-11-19 19:29:02

标签: android textview padding nine-patch stretch

我有一个textview,必须使用9-patch drawable作为背景。但是9-patch drawable有左右填充,这使得背景图像不能正确拉伸以覆盖整个文本。我尝试重置textview本身的填充,但它不能解决问题。

有人会知道如何让它发挥作用吗?

感谢。

2 个答案:

答案 0 :(得分:9)

左侧和顶部的黑线定义了可伸展的区域,右侧底部上的黑线标记了9个补丁图像中的“内容”区域。

因此,如果您不想填充意味着您需要一个全长内容区域。您应该通过在9patch图像的底部和右侧绘制一条全长线来标记全宽度内容区域。

enter image description here

在此图像中,右侧和底部的黑线代表内容区域。您可以在右侧看到预览,并注意浅蓝色的内容区域。您可以通过扩展底部和右侧线来填充内容区域。

答案 1 :(得分:0)

编辑9补丁文件不是一个好主意,因为此方法可能会使背景图像变形。 我用了一个技巧来解决这个问题:

<RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <View
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_alignBottom="@+id/textView"
                android:layout_alignTop="@+id/textView"
                android:background="@drawable/your_9_patch_image"/>
            <TextView
                android:id="@+id/textView"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="a custom text!"/>
</RelativeLayout>

我在View TextView后面为RelativeLayout设置了repositories { mavenCentral() }的9-patch背景。所以没有不需要的填充:)