在按钮视图中删除文本填充

时间:2013-10-07 14:04:21

标签: android android-button

我想在Button视图中删除文本周围的填充。 第一个截图是我将实现的结果,第二个截图是最先进的。

enter image description here

enter image description here

当然,我已经定义了一个自定义drawable来获得按钮外观。但即使我将padding属性设置为0dp,结果也不会改变。

有任何建议吗?

修改 这是按钮的

<Button
        android:id="@+id/btnCancel"
        style="@style/dark_header_button"
        android:layout_width="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_height="wrap_content"
        android:includeFontPadding="false"
        android:padding="0dp"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:text="@android:string/cancel" />

这是样式xml文件:

<style name="dark_header_button">
    <item name="android:background">@drawable/bkg_dark_header_button</item>
    <item name="android:shadowDy">-1</item>
    <item name="android:shadowColor">#000000</item>
    <item name="android:shadowRadius">1</item>
    <item name="android:textSize">14sp</item>
    <item name="android:textColor">#ffffff</item>
</style>

这是可绘制的xml文件:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true">
    <shape>

        <corners android:radius="10dp" />

        <gradient 
            android:angle="90" 
            android:endColor="#060606"
            android:startColor="#707070"
            android:type="linear" />

    </shape>
</item>
<item>
    <shape>

        <corners android:radius="10dp" />

        <gradient 
            android:angle="90" 
            android:endColor="#707070" 
            android:startColor="#060606" 
            android:type="linear" />

        <stroke 
            android:width="0.5dp" 
            android:color="#2b2b2b" />

    </shape>
</item>


</selector>

3 个答案:

答案 0 :(得分:46)

它实际上并不是填充,但主题是为按钮小部件设置minHeight和minWidth。您可以通过在xml中的按钮上设置以下内容来完全删除此效果而不更改主题:

android:minHeight="0dp"
android:minWidth="0dp"

因此,它也意味着您可以使用不同的设置来处理不同的效果,0dp仅仅是一个完全消除此效果的示例。

答案 1 :(得分:16)

您可以尝试使用android:includeFontPadding。将其设置为false。也将填充设置为0。

答案 2 :(得分:1)

按钮文本不需要填充,默认情况下位于按钮的中心。 我认为您在清单文件中使用android:theme="@android:style/Theme.Black.NoTitleBar",请将其删除并使用原生应用主题并尝试使用。