界面布局
界面布局(Layout)是用户界面结构的描述,定义了界面中所有元素、结构和相互关系
声明Android程序的界面布局有两种方法:
- 使用XML文件描述界面布局(推荐)
- 在程序运行时动态添加或修改界面布局(不推荐)
Android中常用的见面布局:
• 线性布局
• 框架布局
• 绝对布局
• 相对布局
• 表格布局
• 网格布局
• 约束布局线性布局:
在线性布局,所有子元素按照垂直或者水平的顺序在界面上排列
orientation属性--horizontal:水平方向,vertical:竖直方向
框架布局
在屏幕上开辟出一块空白的区域,界面元素默认放在空白区域的左上角
gravity属性--center:居中 center_horizontal:水平居中 center_vertical:垂直居中
left:偏左 |right:偏右 (start和end:详见 这里有这2个属性的解释)
bottom:偏下 |top:偏上
fill:充满容器 |fill_horizontal:水平方向充满容器 |fill_vertical:垂直方向充满容器
clip_horizontal:水平裁剪|clip_vertical:垂直裁剪
绝对布局
能通过指定绝对坐标确定用户界面的位置,绝对布局是一种不推荐使用的界面布局
相对布局
是一种非常灵活的布局方式,通过指定与其他元素的相对关系来确定界面元素的位置,能够最大程度保证界面在不同屏幕尺寸的手机上正确显示。
相对于父元素给控件布局
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相对于父元素完全居中
android:layout_alignParentBottom 位于父元素的下边缘
android:layout_alignParentLeft 位于父元素的左边缘
android:layout_alignParentRight 位于父元素的右边缘
android:layout_alignParentTop 位于父元素的上边缘
android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话就以父元素做参照物 属性值必须为id的引用名“@id/id-name”
android:layout_below 位于元素的下方
android:layout_above 位于元素的的上方
android:layout_toLeftOf 位于元素的左边
android:layout_toRightOf 位于元素的右边 android:layout_alignTop 该元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft 该元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom 该元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight 该元素的右边缘和某元素的的右边缘对齐 给属性赋予像素值
android:layout_marginBottom 底边缘的距离
android:layout_marginLeft 左边缘的距离
android:layout_marginRight 右边缘的距离
android:layout_marginTop 上边缘的距离表格布局
表格布局(TableLayout)是一种常用的界面布局,一行和列的方式将界面元素添加到表格中
表格布局的行数由开发人员指定,列数等于含有最多子元素的行包含的元素个数
android:layout_width 设置控件所占的高度
android:layout_height 设置控件所占的高度
android:layout_marginTop 当前视图上边缘到某条基线的距离
android:layout_marginButton 当前视图下边缘到某条基线的距离
android:gravity 这个是针对控件里的元素来说的,用来控制元素在该控件里显示的位置。
android:layout_gravity 这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。网格布局
将用户界面划分为网格,界面元素可随意摆放在网格中,比表格布局在界面设计上更加灵活,在网格布局中界面元素可以占用多个网格,而在表格布局却无法实现。网格布局文件格式如下:

约束布局
使用约束的方式来指定各个控件的位置和关系,非常适合可视化方式设计界面
















