我想在Button视图中删除文本周围的填充。 第一个截图是我将实现的结果,第二个截图是最先进的。
当然,我已经定义了一个自定义drawable来获得按钮外观。但即使我将padding属性设置为0dp,结果也不会改变。
有任何建议吗?
修改
这是按钮的 这是样式xml文件: 这是可绘制的xml文件:<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" />
<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>
<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>
答案 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"
,请将其删除并使用原生应用主题并尝试使用。