android四种布局管理方法:
1.线性布局线性布局是将放入其中的组件按照垂直或水平方向来布局,也就是控制放入其中的组件横向排列或纵向排列。在线性布局中,每一行(针对垂直排列)或每一列(针对水平排列)中只能放一个组件。并且Android的线性布局不会换行,当组件一个挨着一个排列到窗体的边缘后,剩下的组件将不会被显示出来。
在Android中,可以在XML布局文件中定义线性布局管理器,也可以使用Java代码来创建。推荐使用在XML布局文件中定义线性布局管理器。在XML布局文件中定义线性布局管理器,需要使用标记,其基本的语法格式如下:
<LinerLayout xmlns:android="http:..schemas.android.com/apk/res/android
android:orientation="vertical"
android:gravity="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background"
android:id="@+id/XXXX"
">
</Linerlayout>
android:orientation属性用于设置布局管理器内组件的排列方式。选值为horizontal水平和vertical竖直。
android:gravity属性用于设置布局管理器内组件的对齐方式,其可选值包括top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、center、fill、clip_vertical、clip_horizontal这些属性也可以同时指定,个属性之间用竖线|隔开例如右上角 right|top。
android:layout_width 用于设置组件的基本宽度。属性值:fill_parent和父控件同宽 match_parent和父控件同宽wrap_parent宽度正好包裹住内容。
android:layout_height设置组件的基本高度,属性值:fill_parent 、match_parent、wrap_content
android:id属性用于为当前组件指定一个id属性,在java代码中应用该属性单独应用这个组件,为组建制定id后,在R.java中就会自动派生出一个对应的属性,在java代码中,可以通过findViewById()方法获取。
android:background属性用于为组件设置背景,可以选择背景图片或者是背景颜色如:android:background=”@drawable/background”
android:background=”#FFFFFFFF”
2 表格布局
表格布局与常见的表格类似,它以行、列的形式来管理放入其中的UI组件。表格布局使用标记定义,在表格布局中,可以添加多个标记,每个标记占用一行,由于标记也是容器,所以在该标记中还可添加其他组件,在标记中,每添加一个组件,表格就会增加一列。在表格布局中,列可以被隐藏,也可以被设置为伸展的,从而填充可利用的屏幕空间,也可以设置为强制收缩,直到表格匹配屏幕大小。
注意 :在表格布局中直接向中添加UI组件,那么该组件将独占一行。
继承了,因此它完全支持LinerLayout的全部XML属性,当然还有三个自己本身的属性
android:collapseColumns设置被隐藏的列的列序号(从0 开始),多个序列号之间用逗号“,”隔开。
android:shrinkColumns设置允许被收缩的列的列序号(从0 开始),多个序列号之间用逗号“,”隔开。
android:stretchColumns设置允许被拉伸的列的列序号(从0 开始),多个序列号之间用逗号“,”隔开。
如代码中部分:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background_a"
android:gravity="center_vertical"
android:stretchColumns="0,3"
>
<!-- 第一行 -->
<TableRow android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView/>
<TextView android:text="用户名:"
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:textSize="24px"
android:layout_height="wrap_content"
/>
<EditText android:id="@+id/editText1"
android:textSize="24px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:minWidth="200px"/>
<TextView />
</TableRow>
<!-- 第二行 -->
<TableRow android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView/>
<TextView android:text="密 码:"
android:id="@+id/textView2"
android:textSize="24px"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="24px"
android:id="@+id/editText2"
android:inputType="textPassword"/>
<TextView />
</TableRow>
<!-- 第3行 -->
<TableRow android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView/>
<Button android:text="登录"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button android:text="退出"
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView />
</TableRow>
</TableLayout>
3 帧布局
在帧布局管理器中,每加入一个组件,都将创建一个空白的区域,通常称为一帧,这些帧都会根据gravity属性执行自动对齐。默认情况下,帧布局是从屏幕的左上角(0,0)坐标点开始布局,多个组件层叠排序,后面的组件覆盖前面的组件。
在XML布局文件中,定义帧布局管理器可以使用标记,其基本的语法格式如下:
< FrameLayout xmlns:android=”http://schemas.android.com/apk/res/android”
属性列表
>
帧布局的支持的XML属性:
android:foreground设置该布局容器额前景图像
android:foregroungGravity定义绘制前景图像的gravity属性,即前景图象的显示位置。
代码:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
android:id="@+id/frameLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background"
android:foreground="@drawable/icon"
android:foregroundGravity="bottom|right"
>
<!-- 添加居中显示的红色背景的TextView,将显示在最下层 -->
<TextView android:text="红色背景的TextView"
android:id="@+id/textView1"
android:background="#FFFF0000"
android:layout_gravity="center"
android:layout_width="400px"
android:layout_height="400px"/>
<!-- 添加居中显示的橙色背景的TextView,将显示在中间层 -->
<TextView android:text="橙色背景的TextView"
android:id="@+id/textView2"
android:layout_width="300px"
android:layout_height="300px"
android:background="#FFFF6600"
android:layout_gravity="center"
/>
<!-- 添加居中显示的黄色背景的TextView,将显示在最上层 -->
<TextView android:text="黄色背景的TextView"
android:id="@+id/textView3"
android:layout_width="200px"
android:layout_height="200px"
android:background="#FFFFEE00"
android:layout_gravity="center"
/>
</FrameLayout>
4 相对布局
XML属性 描述
android:layout_above 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的上方
android:layout_alignBottom 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的下边界对齐
android:layout_alignLeft 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的左边界对齐
android:layout_alignParentBottom 其属性值为boolean值,用于指定该组件是否与布局管理器底端对齐
android:layout_alignParentLeft 其属性值为boolean值,用于指定该组件是否与布局管理器左边对齐
android:layout_alignParentRight 其属性值为boolean值,用于指定该组件是否与布局管理器右边对齐
android:layout_alignParentTop 其属性值为boolean值,用于指定该组件是否与布局管理器顶端对齐
android:layout_alignRight 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的右边界对齐
android:layout_alignTop 其属性值为其他UI组件的id属性,用于指定该组件与哪个组件的上边界对齐
android:layout_below 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的下方
android:layout_centerHorizontal 其属性值为boolean值,用于指定该组件是否位于布局管理器水平居中的位置
android:layout_centerInParent 其属性值为boolean值,用于指定该组件是否位于布局管理器的中央位置
android:layout_centerVertical 其属性值为boolean值,用于指定该组件是否位于布局管理器垂直居中的位置
android:layout_toLeftOf 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的左侧
android:layout_toRightOf 其属性值为其他UI组件的id属性,用于指定该组件位于哪个组件的右侧