android的布局管理
android的布局分为五种,分别为 1.LinearLayout (线性布局) 2. RelativeLayout(相对布局) 3.TableLayout(表格布局) 4.FrameLayout(框架布局) 5 .AbsoluteLayout(绝对布局) 下面进行详细的介绍。
1. RelativeLayout(相对布局)
相对布局是以一个元素为参考点,对另外一个元素进行布局 下面是几个常用的属性
android:layout_alignParentTop=“true” 表示与父元素的顶部对其(上下左右都有这个属性)
android:layout_below="@id/xxx" 注意没有+ ,表示在xxx元素下面
android:layout_toRightOf="@id/xxx" 表示在xxx元素右边 (左边)
android:layout_marginLeft="5dp" 表示与左边(上下左右)元素的距离为5dp
另外一种用法android:layout_marginTop=“@id/xxx” 表示与xxx顶部相对位置一样
示例
<?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"
android:paddingLeft="16dp"
android:paddingRight="16dp" >
<EditText
android:id="@+id/name"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="@string/reminder" />
<Spinner
android:id="@+id/dates"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:layout_alignParentLeft="true"
android:layout_toLeftOf="@+id/times" />
<Spinner
android:id="@id/times"
android:layout_width="96dp"
android:layout_height="wrap_content"
android:layout_below="@id/name"
android:layout_alignParentRight="true" />
<Button
android:layout_width="96dp"
android:layout_height="wrap_content"
android:layout_below="@id/times"
android:layout_alignParentRight="true"
android:text="@string/done" />
</RelativeLayout>
2.TableLayout(表格布局)
表格布局类似html的table 按照行列进行布局比较简单 用TableRow表示行,一个表示一行
stretchColumns 表示剩下空间由谁填充 android:stretchColumns=2 表示第二列填充剩下空间
layout_column 表示控件从哪列开始android:layout_column=2表示第0 1 列是空白
android:gravity=“center”表示空间在什么位置
如下示例
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0,1,2"
android:shrinkColumns="1,2"
>
<TextView
android:text="Table Test"
android:gravity="center"/>
<TableRow>
<TextView
android:layout_column="1"
android:text="姓名"
android:gravity="center"/>
<TextView
android:text="基本信息"
android:gravity="center"/>
</TableRow>
<TableRow>
<TextView
android:text=" 1 "
android:gravity="center"/>
<TextView
android:text="hoyah"
android:gravity="left"/>
<TextView
android:text="Wuhan University"
android:gravity="right"/>
</TableRow>
<TableRow>
<TextView
android:text=" 2 "
android:gravity="center"/>
<TextView
android:text="Google"
android:gravity="left"/>
<TextView
android:text="hello Google"
android:gravity="right"/>
</TableRow>
<TableRow>
<TextView
android:text="3"
android:gravity="center"/>
<TextView
android:text="Android"
android:gravity="left"/>
<TextView
android:text="Android OS"
android:gravity="right"/>
</TableRow>
</TableLayout>
3 FrameLayout(帧布局)
一个控件叠放在另外一个控件上面
以屏幕的左上角为参考点
播放器的播放按钮就是使用帧布局做到的
4.LinearLayout (线性布局)
比较简单 按照垂直或者水平线性排放
orientation属性决定布局是水平还是垂直
android:orientation="horizontal"表示水平排列
android:orientation-"vertical"表示垂直排列
5.AbsoluteLayout(绝对排列)
AbsoluteLayout排列采用绝对坐标,因此,屏幕需要自适应的时候不要使用此布局
通过 android:layout_x
android:layout_y定位元素的位置