You can use the button with the text anywhere, and then place the image for this button above the text (using android:drawableTop ) as follows:
<Button android:id="@+id/imageButton" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Photos" android:drawableTop="@drawable/button_image" />
replacing buttton_image your actual image. If you want the image to be in a different position (i.e. below the text, etc.), Use:
android:drawableLeft android:drawableRight android:drawableBottom
That would be the way I would do it ...
source share