2

我一直在寻找这个问题的答案一段时间,但我找不到适合我的答案。我想在线性布局中将三张图片放在同一行。我希望它们成为 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>

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

看起来 http://imageshack.us/a/img18/1516/x3qi.png

它应该是这样的:

应该看起来 http://imageshack.us/a/img855/834/403t.png

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

4

5 回答 5

7

只需添加 android:adjustViewBounds="true"到您的每个 ImageButtons。这就是你所需要的。

于 2013-08-31T17:06:10.107 回答
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...
}
于 2013-08-31T16:55:12.697 回答
0

添加这个:

   android:adjustViewBounds="true"

ImageButton.

maxHeightimageButton

  android:maxHeight = "yourValue"
于 2013-08-31T16:51:59.390 回答
0

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

于 2013-08-31T17:14:02.380 回答
0

只需在您的 xml 中包含尺寸并将其设置在 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" />
于 2015-01-28T09:53:52.870 回答