如何制作视图的大小取决于另一个视图的大小?

时间:2010-12-06 14:48:34

标签: android user-interface

我正在制作如下图所示的UI。视图1是图像,当显示不同的图片时,其大小会有所不同。视图2和视图3的大小取决于视图1.如何定义xml文件以实现此目的?

ps:设计来自客户,所以我无法改变它。

alt text

2 个答案:

答案 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>