下午好。有标记
<ImageView
android:id="@+id/imageView4"
android:layout_width="match_parent"
android:layout_height="0dp"
myapp:srcCompat="@mipmap/ic_launcher"
android:layout_weight="9" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
android:layout_weight="1"
android:orientation="horizontal">
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="OK" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Отмена" />
</LinearLayout>
此布局使用 layout_weight 在 90%(图片)和 10%(按钮栏)之间拆分屏幕。我在 css 中使用 layout_weight 之类的百分比
如何使 10% 的屏幕高度仍然分配在带有按钮的面板下,但同时使 ImageView 不出现在布局中(如果从上面的标记中删除它,则面板带有按钮将占据整个屏幕)?

在我看来,这件事是这样完成的:图片被拉伸到屏幕的宽度和高度(不要忘记我们只是从列表中输入ELEMENT),从下面添加一个 FrameLayout,其中一个透明图片设置为背景参数。然后将 TextView 放在 FrameLayout 上
我不想以特定数字设置 FrameLayout 的高度,因为我认为这会影响应用程序在小屏幕上的外观。而且我一开始用的方法也不合适,因为。图片也显示在 FrameLayout 下。当上面没有元素时,如何将 FrameLayout 的高度设置为百分比?您如何看待这种方法?我是设计和布局的新手,所以我很想听听您的意见和建议。
提前致谢!


我建议不要太聪明并使用以下标记:
res/values/colors.xml 文件:
ImageView用 CenterCrop 填充占据整个可用宽度和所需的高度空间,并确定父容器的大小(其高度wrap_content)。TextView捕捉到容器的底部边缘并具有半透明背景和填充以增加高度。它们不会正好是 10%,但它们看起来总是与文本和谐。你可以自己选择一个特定的值(我有20dp)。相反
TextView,你可以使用 horizontalLinearLayout,例如,如果你想在底部放置几个元素这是最后发生的事情:
对于百分比的相对布局,
Android support percentGoogle 的库非常棒。可以在habrahabr.ru上找到使用它的示例当然,对于这种野蛮的做法,我深表歉意,但为什么不直接将 ImageView 替换为空格,以免与第三方库打交道,而不必面对它们带来的问题。space 是一种轻量级标记元素,旨在填充像您这样的情况下的空白空间。
<android.support.v4.widget.Space