在将ImageView固定到底部

时间:2016-06-14 20:24:35

标签: android android-layout

我需要实现一个布局,其中ImageView固定在屏幕的底部,TextView放置在该伸展的正上方以填充剩余的垂直空间,文本以其边界为中心。现在,图像永远不应该超出其原始尺寸,它应该在需要时按比例缩小,以确保TextView始终完全可见。图像可能高于设备的视口,尤其是在景观中。这是棘手的部分。

我已经接近这个布局,使用根LinearLayout并应用layout_weight但是使用图像的大小不能调整大小,因此根据重量和屏幕尺寸缩放图像。稍微考虑一点,我能够将图像固定到底部,确保它不会向上缩放,但确保缩小,同时确保文本完全可见,但文本不会垂直拉伸以填充可用空间 - 它的大小根据文本内容,它总是固定在顶部。

如何实现这种布局?

<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">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/text_1"
        android:layout_gravity="center_horizontal"
        android:gravity="center"
        android:id="@+id/textview_1" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1">

        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/my_tall_image_1"
            android:scaleType="centerInside"
            android:layout_alignParentBottom="true"
            android:id="@+id/imageview_1" />

    </RelativeLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

尝试以下更新的xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
        <ImageView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/myimage_1"
            android:scaleType="centerInside"
            android:layout_alignParentBottom="true"
            android:id="@+id/imageview_1" />

    <TextView
        android:layout_above="@id/imageview_1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/text_1"
        android:gravity="center"
        android:id="@+id/textview_1" />


</RelativeLayout>

希望它对您有用:)