我有一个包含3个图像视图的水平线性布局。每个图像视图包含200x200像素的相同图像。这是我的布局xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image200" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image200" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/image200" />
</LinearLayout>
</RelativeLayout>
这就是它的样子:
请注意左边的第三张图像是如何调整大小我假设的,因为没有足够的空间来容纳3x 200像素宽的图像。
我宁愿发生的不是仅缩小最后一张图像,而是将所有三张图像均匀调整大小以使它们全部适合整个屏幕。如何设置布局以均匀适合所有三个图像?
谢谢
更新 - 在此处更改我的设置之后会出现以下情况:
请注意,图像视图周围的边框仍然是200像素高。为什么会这样?
答案 0 :(得分:14)
为图像视图设置宽度和高度为match_parent
,为所有图像视图设置layout_weight = 1。还要设置属性android:scaleType="fitXY"
答案 1 :(得分:4)
这对我很有用:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:adjustViewBounds="true"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<ImageView
android:adjustViewBounds="true"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
<ImageView
android:adjustViewBounds="true"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"/>
</LinearLayout>
设置为0dp时的布局宽度,布局宽度是图片中的内容。这里LinearLayout的布局宽度与父级匹配。因此它将占据整个宽度,并且根据图像的布局宽度,它们占据了重量比的空间。
答案 2 :(得分:1)
使您的三张图片的宽度为0dp
并添加layout_weight为1
)
<ImageView
android:id="@+id/imageView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:src="@drawable/image200" />
答案 3 :(得分:1)
@JanTacci关于你的后续问题“请注意,即使图像缩小了,实际布局高度仍然是200像素。为什么会发生这种情况?”
我遇到了同样的问题并通过将此属性添加到每个ImageView来修复它:
android:adjustViewBounds="true"