如何显示调整为ImageButton大小的背景图像?

问题描述

我有一个多层LinearLayout来显示出现日历的4x6图像按钮。但是,当我要设置ImageButton的背景时,它太大了。如何设置图像背景以适合ImageButton的大小?我想在一个漂亮的网格中显示24个礼物盒。

<ImageButton
            android:id="@+id/buttonOne"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_weight="25"
            android:background="@drawable/present"
            android:fontFamily="@font/christmas"
            android:onClick="playOne"
            android:text="1"
            android:textColor="@android:color/white"
            android:textSize="@dimen/button_text_size" />

解决方法

我认为您想要做的事情可以通过更改/添加两件事来完成:

  1. 它是一个ImageButton,所以不要使用android:background属性,而要使用android:src并具有相同的可绘制对象

  2. 然后添加属性android:adjustViewBounds="true",该属性基本上可以在保持宽高比的同时调整图像以适合视图

我认为应该可以解决问题,否则您也可以尝试

  1. 使用android:scaleType属性,我会尝试使用fitXY,但这是所有可能的比例类型:https://developer.android.com/reference/android/widget/ImageView.ScaleType

编辑:另外,您可能需要更改宽度和高度属性,或者以dp指定大小,使用约束或将ImageButtons包装在GridLayout