1

我正在尝试使用以下 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 那样放在底部。

在此处输入图像描述

任何想法为什么会发生这种情况?

4

5 回答 5

7

您应该更改 ImageView 本身的设置,以便在 ImageView 上进行精确设置android:scaleType="fitEnd"

其他答案似乎是解决方法,包括您自己的答案。这不是布局的问题,而是当图像和屏幕的尺寸不相似(即宽度/高度比非常不同)时,图像在 ImageView 内部的哪个位置加载。默认情况下,它将在 ImageView 的中间加载图像。

于 2017-04-15T18:48:07.860 回答
5

尝试使用 RelativeLayout 而不是 LinearLayout 并使用 parameter android:layout_alignParentBottom = "true"

编辑:尝试将 layout_height 和 layout_width 作为包含 ImageView 的 LinearLayout 的 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;
于 2013-10-06T17:21:07.290 回答
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" />

测试并按预期工作

于 2017-07-14T07:47:03.120 回答
0

I have resized photo size from width 2560 to width 270 and finally ImageView went to bottom.

于 2013-10-06T17:51:10.053 回答
0

您没有在 imageview 中包含 android:layout_gravity="bottom" 行。

于 2013-10-06T17:19:31.997 回答