我正在尝试使用以下XML将ImageView放在布局的底部:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#EEEEEE"
android:gravity="center"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:src="@drawable/photo" />
</LinearLayout>
</LinearLayout>
我按照http://sandipchitale.blogspot.co.uk/2010/05/linearlayout-gravity-and-layoutgravity.html
中的说明操作唯一的区别是我在这里使用ImageView而不是Button:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:orientation="horizontal" >
<Button
android:id="@+id/Button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="bottom" >
</Button>
</LinearLayout>
</LinearLayout>
将按钮放在预期位置:
不幸的是,在帖子顶部的我的XML中并非如此。 ImageView没有放在底部,因为参考XML中的Button是。
为什么会发生这种情况?
答案 0 :(得分:5)
您应该在ImageView中更改设置,在ImageView上精确设置android:scaleType="fitEnd"
。
其他答案似乎是解决方法,包括您自己的答案。这对于布局来说不是问题,但是当图像和屏幕的尺寸不相似时,在ImageView内部加载图像(即宽度/高度比非常不同)。默认情况下,它会将图像加载到ImageView的中间。
答案 1 :(得分:4)
尝试使用RelativeLayout而不是LinearLayout,并使用参数android:layout_alignParentBottom = "true"
。
编辑:尝试为包含ImageView的LinearLayout提供layout_height和layout_width作为wrap_content。
或者可能是您正在使用的图像上方和下方都有额外的空间。
<强>更新强>
问题在于图像的大小。它比屏幕尺寸大得多。我建议您使用以下代码以编程方式读取设备的屏幕尺寸:
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;
并以编程方式设置imageView的高度和宽度,如下所示:
image_view.getLayoutParams().height = height - 50;
image_view.getLayoutParams().width = width - 50;
答案 2 :(得分:1)
在相对布局中尝试此内容
<ImageView
android:id="@+id/imageView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:adjustViewBounds="?attr/isLightTheme"
app:srcCompat="@drawable/client_app_footer" />
测试&amp;按预期工作
答案 3 :(得分:0)
你没有在你的imageview中包含android:layout_gravity =“bottom”行。
答案 4 :(得分:0)
我已将照片尺寸从宽度2560调整为宽度270,最后ImageView进入底部。