一、线性布局LinearLayout
1.orientation --表示线性布局的方向,horizontal:水平方向 vertical:垂直方向 2.android:layout_gravity与android:gravity区别名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。
android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。
比如说button: android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。
<?xml version="1.0" encoding="utf-8"?>
<!--线性布局,最外面包裹一个水平线性布局-->
<!--orientation表示线性布局的方向,horizontal:水平方向 vertical:垂直方向 -->
<!-- @代表R类,如果是自定义的ID 则用@+id/××× 表示,如果是引用R类的资源则@string/×××-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:background="@drawable/bg"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/linear"
/>
<Button
android:id="@+id/button"
android:layout_width="183dp"
android:layout_height="wrap_content"
android:text="@string/button"
/>
<ImageButton
android:id="@+id/imagebutton"
android:layout_width="180dp"
android:layout_height="48dp"
android:src="@drawable/imagebutton"
/>
</LinearLayout>
<!-- android:layout_gravity与android:gravity区别,拿一个button作为例子
前者的意思,是这个按钮的位置,如果设置为right则表示这个按钮整体位置靠右;
后者的意思,这个按钮上显示内容的位置。
-->
<LinearLayout
android:gravity="right"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/imageview"
android:layout_marginTop="5dp"
android:src="@drawable/imageview"
android:layout_width="131dp"
android:layout_height="131dp"
/>
</LinearLayout>
</LinearLayout>

二、表格布局TableLayout
TableLayout特点: 1)TableLayout和我们平时在网页上见到的Table有所不同,TableLayout没有边框的 2)它是由多个TableRow对象组成,每个TableRow可以有0个或多个单元格,每个单元格就是一个View。这些TableRow,单元格不能设置layout_width,宽度默认是fill_parent的,只有高度layout_height可以自定义,默认是wrap_content。 3)单元格可以为empty,并且通过android:layout_column可以设置index值实现跳开某些单元格。在TableRow之间 4)添加View,设置layout_height以及背景色,就可以实现一条间隔线。android:layout_span可以设置合并几个单元格
<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/tableLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:stretchColumns="*" >
<TableRow android:id="@+id/tableRow0" android:layout_width="wrap_content" android:layout_height="wrap_content">
<EditText
android:digits="1234567890.+-*/=%\n\t()"
android:layout_width="fill_parent"
android:layout_span="4"
></EditText>
</TableRow>
<TableRow android:id="@+id/tableRow1" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button
android:text="("
android:layout_width="1dip"
></Button>
<Button
android:text=")"
android:layout_width="1dip"
></Button>
<Button
android:text="*"
android:layout_width="1dip"
></Button>
<Button
android:text="back"
android:layout_width="1dip"
></Button>
</TableRow>
<TableRow android:id="@+id/tableRow2" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button
android:text="7"
></Button>
<Button
android:text="8"
></Button>
<Button
android:text="9"
></Button>
<Button
android:text="%"
></Button>
</TableRow>
<TableRow android:id="@+id/tableRow3" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button
android:text="4"
></Button>
<Button
android:text="5"
></Button>
<Button
android:text="6"
></Button>
<Button
android:text="/"
></Button>
</TableRow>
<TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button
android:text="1"
></Button>
<Button
android:text="2"
></Button>
<Button
android:text="3"
></Button>
<Button
android:text="-"
></Button>
</TableRow>
<TableRow android:id="@+id/tableRow4" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button
android:text="0"
></Button>
<Button
android:text="."
></Button>
<Button
android:text="+"
></Button>
<Button
android:text="*"
></Button>
</TableRow>
<!-- 设置tr间的分割线 -->
<View android:layout_height="20dip" android:background="#C4C4C4"></View>
</TableLayout>

三、绝对布局AbsoluteLayout
layout_x:指定布局中子组件的X坐标 Lyout_y:指定布局中子组件的Y坐标 px(像素) dip/dp:独立设备像素(device independent pixels)主要处理组件的大小宽度 sp:主要处理文字大小
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:layout_x="20dip"
android:layout_y="20dip"
android:id="@+id/textView1"
android:text="用户名:" android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</TextView>
<EditText android:layout_x="80dip" android:layout_width="wrap_content"
android:id="@+id/editText1" android:text="EditText"
android:layout_height="wrap_content" android:width="200px"></EditText>
<TextView android:layout_x="20dip" android:id="@+id/textView2"
android:text="密码:" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_y="75dip"></TextView>
<EditText android:layout_x="80dip" android:layout_width="wrap_content"
android:id="@+id/editText2" android:text="EditText"
android:layout_height="wrap_content" android:layout_y="75dip" android:width="200px" android:password="true"></EditText>
<Button android:text="登录" android:layout_x="130dip"
android:id="@+id/button1" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_y="135dip"></Button>
</AbsoluteLayout>

四、相对布局RelativeLayout
RelativeLayout.LayoutParams中可以找到大量的属性 1.相对于布局的属性: 比如说,layout_centerHorizontal 子组件是否位于布局容器的水平居中位置 layout_alignParentBottom子组件是否与布局底端对其等等 2.相对其他组件属性: 比如说,layout_toRightOf 控制该组件位于给定ID的右侧
<?xml version="1.0" encoding="utf-8"?>
<!-- 相对布局 一个控件相对于另一个控件或者容器的位置。 -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/bg"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/describe_view"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
android:textColor="#556055"
/>
<!-- 这个TextView相对于上一个TextView 在 它的下方所以设置属性为layout_below-->
<TextView
android:id="@+id/username_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/username"
android:textColor="#556055"
android:layout_below="@id/describe_view"
/>
<EditText
android:id="@+id/username_edit"
android:layout_width="90dp"
android:layout_height="40dp"
android:layout_marginTop="4dp"
android:layout_toRightOf="@id/username_view"
android:layout_below="@id/describe_view"
/>
<TextView
android:id="@+id/sex_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/sex"
android:textColor="#556055"
android:layout_below="@id/describe_view"
android:layout_toRightOf="@id/username_edit"
/>
<RadioGroup
android:id="@+id/sex_radiogroup"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/sex_view"
android:layout_below="@id/describe_view"
>
<!--第一个RadioButton -->
<RadioButton
android:id="@+id/male_radiobutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
/>
<!--第二个RadioButton -->
<RadioButton
android:id="@+id/woman_radiobutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
/>
</RadioGroup>
<TextView
android:id="@+id/age_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="25dp"
android:text="@string/age"
android:textColor="#556055"
android:layout_below="@id/username_view"
/>
<EditText
android:id="@+id/brithday_edit"
android:layout_width="90dp"
android:layout_height="40dp"
android:layout_marginTop="4dp"
android:hint="@string/selectdate"
android:textSize="13sp"
android:gravity="center"
android:editable="false"
android:layout_toRightOf="@id/age_view"
android:layout_below="@id/username_edit"
/>
<TextView
android:id="@+id/education_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="25dp"
android:text="@string/education"
android:textColor="#556055"
android:layout_below="@id/sex_view"
android:layout_toRightOf="@id/brithday_edit"
/>
<!-- 下拉列表控件 -->
<Spinner
android:id="@+id/edu_spinner"
android:layout_width="108dp"
android:layout_height="38dp"
android:layout_below="@id/sex_radiogroup"
android:layout_toRightOf="@id/education_view"
/>
<TextView
android:id="@+id/interest_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="25dp"
android:text="@string/interest"
android:textColor="#556055"
android:layout_below="@id/age_view"
/>
<!-- 复选框控件 -->
<CheckBox
android:id="@+id/car_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/car"
android:textColor="#566156"
android:layout_toRightOf="@id/interest_view"
android:layout_below="@id/brithday_edit"
/>
<CheckBox
android:id="@+id/sing_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="11dp"
android:text="@string/sing"
android:textColor="#566156"
android:layout_toRightOf="@id/car_check"
android:layout_below="@id/brithday_edit"
/>
<CheckBox
android:id="@+id/movie_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="11dp"
android:text="@string/movie"
android:textColor="#566156"
android:layout_toRightOf="@id/sing_check"
android:layout_below="@id/brithday_edit"
/>
<Button
android:id="@+id/submit_button"
android:layout_width="100dp"
android:layout_height="40dp"
android:text="@string/submit"
android:gravity="center"
android:layout_below="@id/movie_check"
android:layout_marginLeft="210dp"
android:layout_marginTop="15dp"
/>
</RelativeLayout>

五、框架布局FrameLayout
框架布局,确切的说应该是叫做帧布局,因为 子控件均显示在屏幕的左上角,层叠式排列。此布局无法控制子控件的大小与位置
<?xml version="1.0" encoding="utf-8"?>
<!-- 帧布局,所以子控件均显示在屏幕的左上角,层叠式排列。此布局无法控制子控件的大小与位置,
但是子控件自身可以控制其位置大小 -->
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/bg"
>
<!-- 图片显示控件 并且在容器的右侧显示 -->
<ImageView
android:id="@+id/one_imageview"
android:src="@drawable/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
/>
<!-- 第二张图片显示在左侧底部 -->
<ImageView
android:id="@+id/two_imageview"
android:src="@drawable/two"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:scaleType="fitEnd"
/>
</FrameLayout>

上述代码参考网络上的,仅仅做为参考,代码见附件了.
点击下载