Android 环绕图标的按钮?

Android 环绕图标的按钮?,android,xml,android-button,material-components-android,Android,Xml,Android Button,Material Components Android,我如何删除图标后的间隙?如何正常地将按钮环绕在图标上 我看不到任何直接的方法,但做了一些调整来帮助您 创建没有包装内容的按钮,根据您的设计外观和感觉提供一定的宽度 <Button android:id="@+id/button" android:layout_width="42dp" android:layout_height="wrap_content" android:drawableLef

我如何删除图标后的间隙?如何正常地将按钮环绕在图标上


我看不到任何直接的方法,但做了一些调整来帮助您

创建没有包装内容的按钮,根据您的设计外观和感觉提供一定的宽度

 <Button
    android:id="@+id/button"
    android:layout_width="42dp"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/ic_google_hangouts"
    app:backgroundTint="@android:color/white" />

在代码中,执行以下更改,并根据需要调整填充

 val button = findViewById<Button>(R.id.button)
    button.setPadding(24,0,0,0)
val-button=findviewbyd(R.id.button)
按钮。设置填充(24,0,0,0)
我用于测试的图像尺寸是24dpX24dp

我的最终结果是:


我看不到任何直接的方法,但做了一些调整来帮助你

创建没有包装内容的按钮,根据您的设计外观和感觉提供一定的宽度

 <Button
    android:id="@+id/button"
    android:layout_width="42dp"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/ic_google_hangouts"
    app:backgroundTint="@android:color/white" />

在代码中,执行以下更改,并根据需要调整填充

 val button = findViewById<Button>(R.id.button)
    button.setPadding(24,0,0,0)
val-button=findviewbyd(R.id.button)
按钮。设置填充(24,0,0,0)
我用于测试的图像尺寸是24dpX24dp

我的最终结果是:

  • 您可以使用注释中建议的图像按钮

  • 您可以将
    材质按钮
    用于此样式:

    <style name="Widget.MaterialComponents.Button.IconOnly">
      <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>
      <item name="iconGravity">textStart</item>
    </style>
    
    
    0dp
    0dp
    0dp
    12dp
    12dp
    48dp
    48dp
    文本开始
    
比如:

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

  • 您可以使用注释中建议的图像按钮

  • 您可以将
    材质按钮
    用于此样式:

    <style name="Widget.MaterialComponents.Button.IconOnly">
      <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>
      <item name="iconGravity">textStart</item>
    </style>
    
    
    0dp
    0dp
    0dp
    12dp
    12dp
    48dp
    48dp
    文本开始
    
比如:

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


您正在使用
按钮
。这是为带有可选可绘制的文本标题而设计的。如果您只需要图标,请使用
ImageButton
@commonware如果我将其替换为ImageButton,则按钮将折叠为一个极小的矩形。看这里:这就是为什么我没有使用ImageButton而不是
app:icon
,你会使用
android:src
。请参阅。@Commonware ok现在大小不错,但我的自定义图标显示时没有颜色。为什么?您正在使用
按钮
。这是为带有可选可绘制的文本标题而设计的。如果您只需要图标,请使用
ImageButton
@commonware如果我将其替换为ImageButton,则按钮将折叠为一个极小的矩形。看这里:这就是为什么我没有使用ImageButton而不是
app:icon
,你会使用
android:src
。请参阅。@Commonware ok现在大小不错,但我的自定义图标显示时没有颜色。为什么?