Home » Java » How do I reduce the inner padding around the text within an Android button object?

How do I reduce the inner padding around the text within an Android button object?

Posted by: admin December 31, 2017 Leave a comment

Questions:

Example buttons

So, at the moment I have a button which looks like the first image above. How do I reduce the padding around the text inside the button itself (To look more like the second image)?

Layout width and height is set as:

android:layout_width="match_parent"
android:layout_height="wrap_content"

The custom style shape has parameters”

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">

With the rest just being color attributes and radii values.

Just to make it clear, I want the frame of the button to hug the “Login” text closer.

All help and feedback is greatly appreciated. Thanks.

Answers:

It took me forever to find this but the “padding” around the text in a button isn’t really padding at all. The default Widget.Button style includes a minHeight property. Changing minHeight on the button will allow you to adjust padding as expected.

<Button
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/test"
        android:textColor="@color/black"
        android:minHeight="40dip"/>


<style name="Widget.Holo.Button" parent="Widget.Button">
    <item name="android:background">@android:drawable/btn_default_holo_dark</item>
    <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
    <item name="android:textColor">@android:color/primary_text_holo_dark</item>
    <item name="android:minHeight">48dip</item>
    <item name="android:minWidth">64dip</item>
</style>

Questions:
Answers:

try this in your custom shape.xml file

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="1dp"
android:padding="1dp">

also you can make change in your button’s xml

android:layout_width="wrap_content"
android:layout_height="wrap_content"

Questions:
Answers:

This helped me – https://stackoverflow.com/a/19227057/3325759 (author – @StinePike)
From the answer –
Add android:includeFontPadding="false"

Questions:
Answers:

If you want a smaller top and bottom padding, use this:

 android:paddingTop="2dp"
 android:paddingBottom="2dp"