我已经看到,通过使用相对布局(以下代码仅显示相关属性),可以将元素的 width 设置为屏幕宽度的一小部分:
<LinearLayout>
<ImageView
android:layout_width="0dp"
android:layout_weight=".40" />
</imageView>
<TextView
android:layout_width="0dp"
android_layout_weight=".60" />
</LinearLayout>
但是......显然,对于分配元素的比例高度,不能做同样的技巧。如果我尝试将layout_height设置为0dp,则Eclipse会抱怨。如果我想要带有标题的图像,图像占据屏幕高度的40%并且下面的标题达到60%,我该怎么办?
答案 0 :(得分:0)
您确实可以为LinearLayout的水平和垂直方向分配权重。
水平方向示例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".40" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".60" />
</LinearLayout>
垂直方向示例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".40" />
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".60" />
</LinearLayout>
另外,知道您不必为权重指定浮点数是有用的。 Android将简单地总结所有权重,然后除以总数以获得每个权重的百分比。因此,分别使用4和6作为layout_weights也可以正常工作。
答案 1 :(得分:0)
将android:orientation =“vertical”添加到您的布局,然后将layout_height = 0dp和weight设置为所需的值。
所以:
<LinearLayout
android:orientation="vertical">
<ImageView
android:layout_height="0dp"
android:layout_weight=".40" />
</imageView>
<TextView
android:layout_height="0dp"
android_layout_weight=".60" />
</LinearLayout>