我有一个textview,必须使用9-patch drawable作为背景。但是9-patch drawable有左右填充,这使得背景图像不能正确拉伸以覆盖整个文本。我尝试重置textview本身的填充,但它不能解决问题。
有人会知道如何让它发挥作用吗?
感谢。
答案 0 :(得分:9)
左侧和顶部的黑线定义了可伸展的区域,右侧和底部上的黑线标记了9个补丁图像中的“内容”区域。
因此,如果您不想填充意味着您需要一个全长内容区域。您应该通过在9patch图像的底部和右侧绘制一条全长线来标记全宽度内容区域。
在此图像中,右侧和底部的黑线代表内容区域。您可以在右侧看到预览,并注意浅蓝色的内容区域。您可以通过扩展底部和右侧线来填充内容区域。
答案 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背景。所以没有不需要的填充:)