ImageButton 内的图像未缩放以填充按钮

Image inside ImageButton not scaling to fill button

我的布局包括这个 ImageButton,如图所示:

但是如您所见,图像并未占据 ImageButton 的完整尺寸。

这是定义 ImageButton 的布局文件:

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@mipmap/dashboard_profile"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="71dp"
    android:layout_marginStart="71dp"
    android:layout_marginTop="100dp"
    android:id="@+id/imageButton3"
    android:scaleType="fitXY"/>

如您所见,我已经添加了 android:scaleType="fitXY",但它不起作用。

我也尝试在 Android Studio 的设计模式中更改按钮大小,但它不让我更改。

如何解决这些问题?

尝试使用 android:src 而不是 app:srcCompat

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:src="@mipmap/dashboard_profile"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="71dp"
    android:layout_marginStart="71dp"
    android:layout_marginTop="100dp"
    android:id="@+id/imageButton3"
    android:scaleType="fitXY"/>

您可以使用此代码

<ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@mipmap/dashboard_profile"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="71dp"
    android:layout_marginStart="71dp"
    android:layout_marginTop="100dp"
    android:id="@+id/imageButton3"
    android:scaleType="fitXY"/>

与 Imageview 不同,Imagebutton 在图像区域周围有一个内边距。这是故意的。这是因为默认的按钮样式。您可以执行以下操作之一:

  • 使用无边框按钮样式作为背景。
    style="?android:attr/borderlessButtonStyle"

  • 将您的背景设置为空。
    android:background="@null"