All the previous answers seem to be outdated
You can use the MaterialButton
now which lets setting the icon gravity.
<com.google.android.material.button.MaterialButton
android:id="@+id/btnDownloadPdf"
android:layout_width="0dp"
android:layout_height="56dp"
android:layout_margin="16dp"
android:gravity="center"
android:textAllCaps="true"
app:backgroundTint="#fc0"
app:icon="@drawable/ic_pdf"
app:iconGravity="textStart"
app:iconPadding="10dp"
app:iconTint="#f00"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:text="Download Pdf" />
For using the material components you will obviously need to:
Add a dependency
implementation 'com.google.android.material:material:1.3.0-alpha01'
(use latest version)
Make your theme extend Material Components theme
<style name="AppTheme" parent="Theme.MaterialComponents.Light">
...
</style>
In case you cannot do so, extend it from the Material Bridge theme
<style name="AppTheme" parent="Theme.MaterialComponents.Light.Bridge">
...
</style>