如何调整ImageButton的宽度和高度?

时间:2013-08-31 16:46:00

标签: android xml imagebutton

我一直在寻找答案,但我找不到适合我的答案。 我想在线性布局中将三张图片放在同一行中。我希望它们是ImageButtons,这是我的代码:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <ImageButton
        android:id="@+id/ImageButton05"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:scaleType="centerInside"
        android:src="@drawable/background" />

    <ImageButton
        android:id="@+id/ImageButton04"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:scaleType="centerInside"
        android:src="@drawable/background" />

    <ImageButton
        android:id="@+id/ImageButton03"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:scaleType="centerInside"
        android:src="@drawable/background" />

</LinearLayout>

我得到的问题是,由于图片'背景'太大,按钮的重量显示正确,而高度比预期的要大很多。 它看起来像这样:

looks http://imageshack.us/a/img18/1516/x3qi.png

看起来应该是这样的:

should look http://imageshack.us/a/img855/834/403t.png

如何在不指定dp中的大小的情况下解决这个问题?

5 个答案:

答案 0 :(得分:7)

只需将android:adjustViewBounds="true"添加到每个ImageButtons即可。这就是你所需要的一切。

答案 1 :(得分:1)

Activity中,您可以尝试将最大高度设置为ImageButton的宽度,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ImageButton ib = (ImageButton) findViewById(R.id.myImageButton);
    ib.setMaxHeight(ib.getWidth());

    //the rest of your onCreate method...
}

答案 2 :(得分:0)

添加:

   android:adjustViewBounds="true"

ImageButton

maxHeight

设置imageButton
  android:maxHeight = "yourValue"

答案 3 :(得分:0)

采用garvity =“top”的垂直方向的父线性布局,并为子线性布局提供权重。

答案 4 :(得分:0)

只需在xml中包含dimension,并将其设置在layout_width和layout_height属性上。

(dimens.xml)
<resources>
    <dimen name="button_height">50dp</dimen>
    <dimen name="button_width">25dp</dimen>
</resources>

(your layout.xml)
<ImageButton
        android:id="@+id/imageButton"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:background="@drawable/stylebuttontl"
        android:layout_width="@dimen/button_width"
        android:layout_height="@dimen/button_height" />