Android - 按钮上的9patch填充

时间:2012-04-04 10:30:23

标签: android android-layout android-button

我创建了一个以9patch图像为背景的按钮。在9patch图像中,我使用了底部和右侧的线来指定内容区域/填充,以便将文本放在按钮上。这在TextView上运行良好,但在Button上,内容行似乎对文本位置没有影响。设置" paddingTop" /" paddingBottom"似乎也没有效果 - 只有"填充"有任何影响。

这是我的布局XML:

<Button 
            android:layout_width="450dp"
            android:layout_height="198dp"
            android:text="Some text here"
            android:gravity="center"
            android:background="@drawable/my_button"/>

有没有办法设置填充?也许我可以使用不同的View而不是Button?例如,我可以尝试使用TextView并使其可点击,但我不确定这将产生什么其他副作用。

2 个答案:

答案 0 :(得分:3)

明确设置android:padding="@null"解决了我的问题。

问题似乎是一个Button(或我正在使用的主题中的一个样式)设置了填充,它覆盖了按钮中的所有其他填充 - 背景中的填充drawable,以及{{ 1}},paddingTop等。

我的按钮布局现在定义如下:

paddingLeft

我的IDE(IntelliJ IDEA 11.1)选择<Button android:layout_width="450dp" android:layout_height="198dp" android:text="Some text here" android:gravity="center" android:padding="@null" android:background="@drawable/my_button"/> 作为错误,即使它已编译。将其设置为@null也有效。

答案 1 :(得分:1)

如果使用9补丁图像作为背景,则填充和拉伸区域都在背景中定义。

如果使用draw9patch工具,它是非常简单的:填充是(内部)定义的内容区域(右侧和底部的线条): http://developer.android.com/guide/developing/tools/draw9patch.html