我想将屏幕划分为4个相等的区域,例如田。四个区域中的每一个都是线性布局。
我尝试使用相对布局来保存四个线性布局,如下所示:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:id="@+id/up_left_area"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#ffff66"
>
<TextView
android:id="@+id/label1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="UP LEFT"/>
</LinearLayout>
<LinearLayout
android:id="@+id/up_right_area"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/up_left_area"
android:background="#ccffff">
<TextView
android:id="@+id/label2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="UP RIGHT"/>
</LinearLayout>
<LinearLayout
android:id="@+id/down_left_area"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_below="@id/up_left_area"
android:background="#66cc33"
>
<TextView
android:id="@+id/label3"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="DOWN LEFT"/>
</LinearLayout>
<LinearLayout
android:id="@+id/down_right_area"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@id/up_right_area"
android:layout_toRightOf="@id/down_left_area"
android:background="#cc6600">
<TextView
android:id="@+id/label4"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="DOWN RIGHT"/>
</LinearLayout>
</RelativeLayout>
使用上面的xml布局代码,我在屏幕上有4个区域,但它们不大小相同。如何修改我的代码以在屏幕上显示相等大小的4个区域,如田?
答案 0 :(得分:4)
您可以使用相同layout_weight = 1的线性布局。
简化的xml:
- linearlayout orientation=vertical, layout_width=fill_parent, layout_height=fill_parent
-- linearLayout orientation=horizontal, layout_weight=1, layout_width=fill_parent, layout_height=fill_parent
-- -- linearLayout layout_weight=1, layout_width=fill_parent, layout_height=fill_parent
-- -- -- .... LEFT TOP
-- -- linearLayout layout_weight=1, layout_width=fill_parent, layout_height=fill_parent
-- -- -- .... RIGHT TOP
-- linearLayout orientation=horizontal, layout_weight=1, layout_width=fill_parent, layout_height=fill_parent
-- -- linearLayout layout_weight=1, layout_width=fill_parent, layout_height=fill_parent
-- -- -- .... LEFT BOTTOM
-- -- linearLayout layout_weight=1, layout_width=fill_parent, layout_height=fill_parent
-- -- -- .... RIGHT BOTTOM
......类似的东西。
答案 1 :(得分:2)
如果您想以RelativeLayout
作为根布局,可以添加一个
<FrameLayout
android:id="@+id/center_of_screen"
android:layout_height="1px"
android:layout_width="1px"
android:layout_centerInParent="true"></FrameLayout>
因此,您知道屏幕的中心,然后使用LinearLayouts
和toRightOf, toLeftOf, below
布局属性的组合对齐4 above
。)。
答案 2 :(得分:1)
我建议您使用LinearLayout
作为根布局。您可以选择方向是vertical
还是horizontal
,但我认为这不重要。然后,您创建两个LinearLayouts
并将android:layout_height
(如果方向为垂直)或android:layout_width
(如果方向为水平)属性设置为fill_parent
,并将其设置为android:layout_weight
属于"1"
的财产。这样你就可以将屏幕划分为两个相等的部分。你应该做的就是将这2个部分分成两部分。希望这有帮助!
答案 3 :(得分:0)
根据http://developer.android.com/reference/android/view/ViewGroup.LayoutParams.html,维度可以是fill_parent
,wrap_content
或特定数量的像素。您可以使用Display.getWidth()
和Display.getHeight()
并将其中的一半传递给LayoutParams。
我不确定是否可以直接在XML中执行此操作,但这样会更优雅。