如何将图像按钮中的图像拉伸到图像按钮的整个区域?

时间:2013-02-14 13:15:18

标签: android image imagebutton stretch

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

It's a "1"

我想将ImageButton内显示的图片拉伸到ImageButton的整个区域。 如您所见,数字1的图片仅占ImageButton的约95%,您还可以看到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" />

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

7 个答案:

答案 0 :(得分:56)

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

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

答案 1 :(得分:7)

您也可以使用

android:scaleType="centerCrop"
android:padding="0dp"

答案 2 :(得分: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" />

答案 3 :(得分:1)

您应该考虑创建一个9补丁图像,以便在您需要拉伸图像时使图像正确适合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"/>

有关使用自定义皮肤创建按钮以及使用选择器管理其状态的完整教程,您可以查看我前一段时间写过的教程(Creating a custom Android button with a resizable skin)

答案 4 :(得分:1)

android:scaleType="fitXY"测试并正常运行。

答案 5 :(得分:0)

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

答案 6 :(得分:0)

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

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

有了这些,您将得到所提供的 src 被拉伸,而且如果您在该 width 上放置一些特定的 heightImageButton,您将不会在它周围得到一个矩形.