我有这样的情况:
我有这样的布局:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="0.6" >
<!-- using relativelayout I can match background size to content -->
<View
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@id/riderTable"
android:layout_alignLeft="@id/riderTable"
android:layout_alignRight="@id/riderTable"
android:layout_alignTop="@+id/riderTable"
android:background="@drawable/rider_opisowe" />
<TableLayout
android:id="@+id/riderTable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="2dp"
android:shrinkColumns="*" >
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<!-- TextViews here -->
</TableRow>
<!-- more rows -->
</TableLayout>
</RelativeLayout>
<ImageView
android:id="@+id/imgPhoto"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:layout_weight="0.4"
android:adjustViewBounds="true"
android:src="@drawable/myImage" />
</LinearLayout>
60%/ 40%的比例有效,但是imageview(白色方块)与蓝盒高度不匹配。我希望图像容器的宽度为父级的40%,与蓝色框的高度相同并包含图像。
已经尝试过:Trying to get Android LinearLayout to stretch horizontally and vertically 然而,描述的简单示例仅使用单色背景,如果我切换到图像,则这不能按预期工作。所以将它放在另一个linearLayout中并不能解决问题。
任何帮助将不胜感激。
答案 0 :(得分:2)
您的布局应该更像:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal"
>
<FrameLayout
android:id="@+id/left"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:layout_weight="6" />
<FrameLayout
android:id="@+id/right"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_gravity="right"
android:layout_weight="4" />
</LinearLayout>
你可以用你想要的任何东西替换左右框架布局。
答案 1 :(得分:1)
将android:layout_height
的{{1}}从wrap_content
更改为match_parent
。
ImageView
答案 2 :(得分:0)
试试这可能会有所帮助
<ImageView
android:id="@+id/imgPhoto"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_gravity="top"
android:layout_weight="0.4"
android:adjustViewBounds="true"
android:src="@drawable/myImage" />