I played around with the properties of buttons in XML and figured a way to write over the background image of a button properly. This is pretty simple, but you will have to adjust the padding to place the text in desired position over the image. The ideal way to customize you button are using selectors, but i had different images for different buttons. You can learn to customize buttons using selectors here.
The background image must be placed inside the resources/drawable folder.
Here’s the XML code-
<Button
android:id="@+id/bangry" //Button id
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Angry" //text we want
//over the image
android:paddingTop="100dp"
android:paddingRight="75dp"
android:textSize="15sp" //Text size
android:textColor="#ffffff"
android:background="@drawable/customangry"
//Link to the BG image
/>
Here’s what the button looks like-