首页 > 解决方案 > 在android中创建一个带有图标的按钮

问题描述

我正在尝试创建一个带有居中图标和文本的按钮作为示例: 文本上方带有图标的按钮

我尝试使用带有 drawableTop 的 Button,但是图标和文本的居中在不同的设备屏幕上不能很好地缩放。使用约束布局作为按钮更好吗?似乎应该有更好的方法。有任何想法吗?

标签: androidandroid-buttonmaterial-components-android

解决方案


您可以使用MaterialButton.

只有图标:

    <com.google.android.material.button.MaterialButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/Widget.App.Button.OutlinedButton.IconOnly"
        app:icon="@drawable/..."/>

和:

<style name="Widget.App.Button.OutlinedButton.IconOnly" parent="Widget.MaterialComponents.Button.OutlinedButton">
    <item name="iconPadding">0dp</item>
    <item name="android:insetTop">0dp</item>
    <item name="android:insetBottom">0dp</item>
    <item name="android:paddingLeft">12dp</item>
    <item name="android:paddingRight">12dp</item>
    <item name="android:minWidth">48dp</item>
    <item name="android:minHeight">48dp</item>
</style>

在此处输入图像描述

或图标 + 文字:

    <com.google.android.material.button.MaterialButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        style="@style/Widget.MaterialComponents.Button.OutlinedButton"
        app:iconGravity="top"
        android:text="BUTTON"
        app:icon="@drawable/..."/>

在此处输入图像描述


推荐阅读