最初はImageButtonつかってたけど文字もつけたくなったのでButtonに戻しました。
button.xml
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="testtesttest"
android:drawableTop="@drawable/ic_android_black_24dp"
android:drawableBottom="@drawable/ic_android_black_24dp"
android:drawableEnd="@drawable/ic_android_black_24dp"
android:drawableStart="@drawable/ic_android_black_24dp"
android:background="@drawable/button_shape"/>
これでdrawable/ic_android_black_24dpが上下左右に表示できます。
backgroundに画像指定すると画像がテキストの下にでます。
今回はSVGでやりました。fillcolorで色が簡単に変えられるのでいいですね。
あとbackgroundで指定したやつでbuttonに枠付けたりbuttonの角を丸くしたり、背景塗ったりできます。
button_shape.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#ffffff"/>
<corners android:radius="20dp"/>
<stroke
android:color="#ffffff"
android:width="2dp"/>
</shape>
</item>
</selector>