сам недавно искал ответ на этот вопрос, не нашел.
Сделал так
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/myButton"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/selector_bottom_buttons"
>
<ImageView
android:id="@+id/myButton_Image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:contentDescription="@string/text_btnKill"
android:clickable="false"
android:focusable="false"
android:focusableInTouchMode="false"
/>
<TextView
android:id="@+id/myButton_Text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:text="Kill"
/>
</FrameLayout>
если размер кнопки строго фиксированный то можно сделать drawable из layer-list и внутри у картинки сделать отступ, но на мой взгляд FrameLayout более простой способ.