我一直在寻找答案,但我找不到适合我的答案。 我想在线性布局中将三张图片放在同一行中。我希望它们是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中的大小的情况下解决这个问题?
答案 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" />