界面布局

界面布局(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  这个是针对控件本身而言,用来控制该控件在包含该控件的父控件中的位置。

网格布局

将用户界面划分为网格,界面元素可随意摆放在网格中,比表格布局在界面设计上更加灵活,在网格布局中界面元素可以占用多个网格,而在表格布局却无法实现。网格布局文件格式如下:

Android Launcer布局 android界面布局_控件

约束布局

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