我正在制作如下图所示的UI。视图1是图像,当显示不同的图片时,其大小会有所不同。视图2和视图3的大小取决于视图1.如何定义xml文件以实现此目的?
ps:设计来自客户,所以我无法改变它。
答案 0 :(得分:0)
更好地使用RelativeLayout来完成此任务....进行适当的更改并使用它
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_below="@id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_toRightof="@id/view1"
android:layout_width="wrap_content"
android:layout_height="fill_parent"/>
</RelativeLayout>
答案 1 :(得分:0)
我认为LinearLayout在这里更好,因为设置适当大小的最简单方法是使用layout_weight。如果为LinearLayout中的一个元素设置非零权重,则它将占用所有剩余空间。 layout_weight以给定权重的比例划分剩余的空格。它首先设置给定的layout_width-s(或高度)后计算剩余空间的大小,然后它将覆盖这些大小。如果要将整个屏幕划分为固定比率,而不是在初始设置之后的剩余空间,则应首先将元素的大小设置为0.因此,请将View1的大小设置为wrap_content,并将其中的所有其他大小设置为适当的方向为0(在另一个方向填充父级),并使用layout_weight = 1。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:orientation="vertical" android:layout_width ="wrap_content"
android:layout_height="fill_parent">
<ImageView
android:id="@+id/view1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src=.../>
<SomeKindOfView
android:id="@+id/view2"
android:layout_width="fill_parent"
android:layout_height="0px"
android:layout_weight="1"/>
</LinearLayout>
<AnotherView
android:id="@+id/view3"
android:layout_width="0px"
android:layout_height="fill_parent"
android:layout_weight="1"/>
</LinearLayout>