我创建了一个以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并使其可点击,但我不确定这将产生什么其他副作用。
答案 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