我需要实现一个布局,其中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>
答案 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>
希望它对您有用:)