25

这是一张可以帮助您理解我的问题的图片:

它是

我想将里面显示的图像拉伸ImageButtonImageButton. 如您所见,带有数字 1 的图片仅占 95% 左右ImageButton,您还可以看到ImageButton.

我仍然想保持图像按钮样式

这是我使用 ImageView 的方式:

<ImageButton
    android:id="@+id/secondActivityBbuttonDownRight"
    android:layout_width="0dip"
    android:layout_height="match_parent"
    android:layout_weight="0.5"
    android:scaleType="fitStart"
    android:src="@drawable/111" />

我想我发现了我的问题。我需要一个自定义组件,它只能包含一个图像并具有点击效果。

4

7 回答 7

66

ImageButton 是 ImageView。
如果您希望您的图像填充按钮
而不是 set android:scaleType="fitXY",那么您设置的图像android:src将被拉伸以填充整个图像按钮。

ImageButton 在您的图像和填充下有一个背景。
如果不想背景
设置android:background="@android:color/transparent"
如果您不想
设置填充android:padding="0"或设置没有填充的背景。

于 2013-02-14T13:51:01.417 回答
7

你也可以使用

android:scaleType="centerCrop"
android:padding="0dp"
于 2014-12-05T21:04:53.823 回答
6

android:scaleType="fitXY"测试并正常工作。

于 2013-08-08T21:06:07.840 回答
2

使用下面的代码: -

<ImageButton
        android:id="@+id/secondActivityBbuttonDownRight"
        android:layout_width="0dip"
        android:layout_height="match_parent"
        android:layout_weight="0.5"
        android:scaleType="fitStart"
        android:background="@drawable/111" />
于 2013-02-14T13:19:23.390 回答
1

您应该考虑创建一个 9-patch 图像,以使图像ImageButton在需要拉伸时正确适合,但您不希望图像变形。

要拥有一个带有完全覆盖它的图像的按钮,您可以使用以下内容:

<ImageButton android:id="@+id/iconBtn"
  android:layout_width="64dip"
  android:layout_height="64dip"
  android:src="@drawable/icon_button"
  android:scaleType="fitCenter"
  android:background="#00000000"/>

有关使用自定义外观创建按钮以及使用选择器管理其状态的完整教程,您可以查看我前段时间在此处编写的教程(使用可调整大小的外观创建自定义 Android 按钮)

于 2013-02-14T15:04:55.503 回答
0

只需在 上设置这两个属性ImageButton

android:background="?attr/selectableItemBackgroundBorderless"
android:scaleType="centerCrop"

有了这些,您将获得提供的 src 进行拉伸,并且如果您放置一些特定的width并且height在其上ImageButton您将不会得到一个矩形。

于 2021-01-17T19:46:19.963 回答
0

如果您的图像“111”本身没有填充,那么只需使用 android:background"@drawable/111"

于 2016-08-27T05:18:21.420 回答