Android Button Design Blog is written keeping in mind Material Design guidelines.

Need some career advice or prepping for an Android developer interview? Hit me up on Topmate.io, and let's chat!

Button Widget in an Android App plays a very important role in user interaction. It prompts user to interact with the app and brings more meaning to app design.

Here are 6 different android XML files that you can use as reference for android button design in your app.

1. Android Button Basic Design

We have used Android constraint layout in the following example.

Android Button Design
Android Button Design

To achieve this basic design style, write following lines of code:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="56dp"
        android:textColor="@color/white"
        android:textSize="17sp"
        android:padding="20dp"
        android:textAllCaps="false"
        android:backgroundTint="@color/colorAccent"
        android:text="View Reports"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

2. Android Button Rounded Rectangle Design

Android Button Design
Android Button Design

To achieve a rounded rectangle design as shown above, you’ve to first create a new android drawable resource file.

To create this file, in ‘Android’ section of Project Panel on the left, go to app > res > drawable

Right click on ‘drawable’ folder and select ‘New > Drawable Resource File’

Create a new file named ’rounded_rectangle’

In this new file write the following line of code:

<?xml version="1.0" encoding="utf-8"?>

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

    <solid android:color="@color/colorAccent"/> <!-- this one is the color of the Rounded Button -->

    <corners
        android:bottomRightRadius="10dp"
        android:bottomLeftRadius="10dp"
        android:topLeftRadius="10dp"
        android:topRightRadius="10dp"/>

</shape>

Once done, go back to your main xml file which contains the button and add following attribute to it:

android:background="@drawable/rounded_rectangle"

To achieve what we have got in the image above, add following lines of code:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="56dp"
        android:textColor="@color/white"
        android:textSize="17sp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:paddingStart="25dp"
        android:paddingEnd="25dp"
        android:focusable="true"
        android:textAllCaps="false"
        android:background="@drawable/rounded_btn"
        android:text="View Reports"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

Note: In case you would like to change the button color, you’ll have to change the shape color attribute in rounded_rectangle.xml file or add android:backgroundTint attribute to ‘Button’ widget!

3. Rounded Design

Android Button Design
Android Button Design

Rounded Design looks quite good. In order to achieve this style you’ll have to first create a new android drawable resource file.

To create this file, in ‘Android’ section of Project Panel on the left, go to app > res > drawable

Right click on ‘drawable’ folder and select ‘New > Drawable Resource File’

Create a new file named ’rounded_rectangle’

In this new file write the following line of code:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <corners android:radius="50dp"/> // if you want clear round shape then make radius size is half of your  button`s height.

    <solid android:color="@color/colorAccent"/> // Button Colour
    <padding
        android:bottom="10dp"
        android:left="25dp"
        android:right="25dp"
        android:top="10dp"/>

</shape>

Once done, go back to your main xml file which contains the button and add following attribute to it:

android:background="@drawable/rounded_rectangle"

To achieve what we have got in the image above, add following lines of code:

 <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="56dp"
        android:textColor="@color/white"
        android:textSize="17sp"
        android:focusable="true"
        android:textAllCaps="false"
        android:background="@drawable/rounded_btn"
        android:text="View Reports"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

Note: In case you would like to change the button color, you’ll have to change the shape color attribute in rounded_rectangle.xml file or add android:backgroundTint attribute to ‘Button’ widget!

4. On Press Change Color

Android Button Design
Android Button Design

If you like to add more colors to your Android Button Design, you can add state_focused and state_pressed to your Android Button widgets and change color of your button whenever user presses the button.

To achieve this, you’ll have to first create a new android drawable resource file.

To create this file, in ‘Android’ section of Project Panel on the left, go to app > res > drawable

Right click on ‘drawable’ folder and select ‘New > Drawable Resource File’

Create a new file named ’rounded_rectangle’

In this new file write the following line of code:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

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

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

            <stroke android:width="1dp"
                android:color="#E91E63" />

            <gradient android:angle="-90"
                android:startColor="#E91E63"
                android:endColor="#F44336"  />
        </shape>
    </item>

    <item android:state_focused="true">
        <shape android:shape="rectangle"  >

            <corners android:radius="12dip" />

            <stroke android:width="1dip"
                android:color="#F44336" />

            <solid android:color="@color/colorAccent"/>

        </shape>
    </item>

    <item >
        <shape android:shape="rectangle"  >

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

            <stroke android:width="5dp"
                android:color="#FF9800" />

            <gradient android:angle="-90"
                android:startColor="#FF9800"
                android:endColor="#FFC107" />

        </shape>
    </item>

</selector>

Once done, go back to your main xml file which contains the button and add following attribute to it:

android:background="@drawable/rounded_rectangle"

To achieve what we have got in the image above, add following lines of code:

   <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="56dp"
        android:textColor="@color/white"
        android:textSize="17sp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:paddingStart="25dp"
        android:paddingEnd="25dp"
        android:focusable="true"
        android:textAllCaps="false"
        android:background="@drawable/rounded_btn"
        android:text="View Reports"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

Note: In case you would like to change the button color, you’ll have to change the shape color attribute in rounded_rectangle.xml file.

5. Empty Button Design

Android Button Design
Android Button Design

One of our favorite, the empty button design style. As shown above, in this button design xml file we have added radius to make button rounded and filled it with the transparent color (” #00000000 “) !

To achieve this, you’ll have to first create a new android drawable resource file.

To create this file, in ‘Android’ section of Project Panel on the left, go to app > res > drawable

Right click on ‘drawable’ folder and select ‘New > Drawable Resource File’

Create a new file named ’rounded_rectangle’

In this new file write the following line of code:

<?xml version="1.0" encoding="utf-8"?>

<shape android:shape="rectangle"

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

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

            <stroke android:width="3dp"
                android:color="@color/colorAccent" />

            <gradient android:angle="-90"
                android:startColor="#00000000"
                android:endColor="#00000000"  />
        </shape>

Once done, go back to your main xml file which contains the button and add following attribute to it:

android:background="@drawable/rounded_rectangle"

To achieve what we have got in the image above, add following lines of code:

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="56dp"
        android:textColor="@color/colorAccent"
        android:textSize="17sp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:paddingStart="25dp"
        android:paddingEnd="25dp"
        android:focusable="true"
        android:textAllCaps="false"
        android:background="@drawable/rounded_btn"
        android:text="View Reports"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

Note: In case you would like to change the button color, you’ll have to change the shape color attribute in rounded_rectangle.xml file.

6. Custom Button Design

If you’re someone who would like to create your own custom design and style, here is way you can do. We’ve created a custom shape and shared its tutorial below!

To achieve this, you’ll have to first create a new android drawable resource file.

To create this file, in ‘Android’ section of Project Panel on the left, go to app > res > drawable

Right click on ‘drawable’ folder and select ‘New > Drawable Resource File’

Create a new file named ’rounded_rectangle’

In this new file write the following line of code:

<?xml version="1.0" encoding="utf-8"?>

<shape android:shape="rectangle"

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

    <!--Radius of all four corners-->
    <corners
        android:bottomRightRadius="50dp"
        android:bottomLeftRadius="10dp"
        android:topLeftRadius="50dp"
        android:topRightRadius="10dp"/>

            <!--Stroke size and color-->
            <stroke android:width="3dp"
                android:color="@color/colorAccent" />

            <!--Fill Color of the Button-->
            <gradient android:angle="-90"
                android:startColor="#00000000"
                android:endColor="#00000000"  />
        </shape>

Once done, go back to your main xml file which contains the button and add following attribute to it:

android:background="@drawable/rounded_rectangle"

To achieve what we have got in the image above, add following lines of code:

   <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="56dp"
        android:textColor="@color/colorAccent"
        android:textSize="17sp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:paddingStart="25dp"
        android:paddingEnd="25dp"
        android:focusable="true"
        android:textAllCaps="false"
        android:background="@drawable/rounded_btn"
        android:text="View Reports"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

Note:

  • In case you would like to change the button color, you’ll have to change the android:startColor=”#00000000″ and android:endColor=”#00000000″ attribute in rounded_rectangle.xml file.
  • In case you would like to change the stroke size, you’ll have to change the android:width=”3dp” attribute.
  • To change the shape of button you’ll have to change the following attributes!
<corners
android:bottomRightRadius="50dp"
android:bottomLeftRadius="10dp"
android:topLeftRadius="50dp"
android:topRightRadius="10dp"/>

Interested in adding more customization to your button? See here Android Material Loading Button

6 comments
Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

You May Also Like