如何使 android 按钮匹配内部图标的确切大小?

How to make android button match the exact size of the inner icon?

我希望我的按钮与内部图标的大小完全匹配。

按钮:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="0dp"
    android:layout_marginTop="0dp"
    android:layout_marginEnd="0dp"
    android:layout_marginBottom="0dp"
    android:background="@android:color/transparent"
    android:padding="0dp"
    app:icon="@drawable/circle"
    app:iconGravity="textStart"
    app:iconPadding="0dp"
    app:iconSize="100dp"
    app:iconTint="@color/design_default_color_primary" />

circle.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
  <stroke
      android:width="1dp"
      android:color="#78d9ff"/>
</shape>

生成的按钮有一些意想不到的顶部和底部填充:

是否可以去掉填充?

尝试将此属性添加到按钮:

 android:insetTop="0dp"
 android:insetBottom="0dp"

你应该试试

Step 1: Create Circle

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval">
<stroke
  android:width="1dp"
  android:color="#78d9ff"/>
</shape>

Step 2: Import Icon to Android Project

Step 3: Using Layer-list Drawable

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/button_corner_black"  />
<item android:drawable="@drawable/ic_arrow_back" android:top="12dp"
    android:bottom="12dp" android:left="12dp"
    android:right="12dp"/>
</layer-list>

Explain : Use padding to shrink the icon inside the button

希望我的回答对您有所帮助