发布时间:2023-12-14 10:00
目录
前言
一、布局的创建
二、布局的类型
1、线性布局
2、相对布局
3、帧布局
4、表格布局
5、绝对布局
三、总结
四、尾注
UI 全名为 User Interface ,UI界面是人与手机之间数据传递、信息交互的重要媒介和对话窗口,是Android 系统的重要组成部分。
在 Android 程序中界面是通过布局文件设定的,在每个应用程序创建时会默认包含一个主界面布局,该布局位于 res/layout 目录下。添加布局的过程为,选中 layout 文件夹并单击右键,依次选中【New】➡【XML】➡【Layout XML File】选项,如图所示:
创建新布局单击该选项后会弹出 New Android Component 界面,Layout File Name 是填写文件名称,而Root Tag 是表示根元素标签,默认为 LinearLayout(线性布局),单击【Finish】按钮即可完成创建布局。
New Android Component 界面布局 | 标签 | 特点 |
---|---|---|
线性布局 | LinearLayout | 以水平或垂直方向排列 |
相对布局 | RelativeLayout | 通过相对定位排列 |
帧布局 | FrameLayout | 开辟空白区域,帧里的控件(层)叠加 |
表格布局 | TableLayout | 表格形式排列 |
绝对布局 | AbsoluteLayout | 通过x,y坐标排列 |
线性布局(LinearLayout)主要以水平或垂直方式来显示界面中的控件。当控件水平排列时,显示顺序依次为从左到右,当控件垂直排列时,显示顺序依次为从上到下。
在线性布局中,有一个重要的属性 orientation ,用于控制控件的排列方向,该属性有 vertical 和 horizontal (默认)两个值,其中vertical 表示线性布局垂直显示,horizontal 表示线性布局水平显示。
注意:
当控件水平排列时,控件属性layout_width只能设置为wrap_content(包裹内容让当前控件根据控件内容大小自动伸缩),否则其余控件会被挤出屏幕右侧不显示。同理,如果控件垂直排列也会出现同样情况。
当控件水平排列时,如果控件未占满一行,会留有空白区域,这样既不美观又浪费空间。此时,可以利用 layout_weight 属性解决这个问题,该属性被称为权重,通过比例调整布局中所有控件的大小。
当控件使用权重属性时,布局宽度属性值通常设置为 0。
相对布局(RelativeLayout)是通过相对定位的方式指定控件位置,即以其它控件或父容器为参照物,摆放控件位置。在设计相对布局时要遵循控件之间的依赖关系,后放入控件的位置依赖于先放入的控件。
以下是相对布局控件属性以及功能描述。
控件属性 | 功能描述 |
---|---|
android:layout_centerInParent | 设置当前控件位于父布局的中央位置 |
android:layout_centerVertical | 设置当前控件位于父布局的垂直居中位置 |
android:layout_centerHorizontal | 设置当前控件位于父控件的水平居中位置 |
android:layout_above | 设置当前控件位于某控件上方 |
android:layout_below | 设置当前控件位于某控件下方 |
android:layout_toLeftOf | 设置当前控件位于某控件左侧 |
android:layout_alignParentTop | 设置当前控件停靠于布局顶端 |
android:layout_alignParentLeft | 设置当前控件停靠于布局左侧 |
android:layout_alignParentRight | 设置当前控件停靠于布局右侧 |
android:layout_alignParentBottom | 设置当前控件停靠于布局底端 |
android:layout_alignTop | 设置当前控件的上边界与某控件的上边界对齐 |
android:layout_alignBottom | 设置当前控件的下边界与某控件的下边界对齐 |
android:layout_alignLeft | 设置当前控件的左边界与某控件的左边界对齐 |
android:layout_alignRight | 设置当前控件的右边界与某控件的右边界对齐 |
控件属性 | 功能描述 |
---|---|
android:layout_marginTop | 设置当前控件上边界与某控件的距离 |
android:layout_marginBottom | 设置当前控件底边界与某控件的距离 |
android:layout_marginLeft | 设置当前控件左边界与某控件的距离 |
android:layout_marginRight | 设置当前控件右边界与某控件的距离 |
布局属性 | 功能描述 |
---|---|
android:paddingTop | 设置布局顶部内边距的距离 |
android:paddingBottom | 设置布局底部内边距的距离 |
android:paddingLeft | 设置布局左边内边距的距离 |
android:paddingRight | 设置布局右边内边距的距离 |
android:padding | 设置布局四周内边距的距离 |
相关知识:控件的单位
为了让程序拥有更好的屏幕适配能力,在指定控件和布局宽高时应尽量避免将控件宽高设置为固定值。但特殊情况下,需要使用指定宽高值时,可以选择使用以下四种单位:
- px:像素,即在屏幕中可以显示最小元素单位。
- pt:磅数,一磅等于1/72英寸,一般pt会作为字体的单位来显示。
- dp:基于屏幕密度的抽象单位。不同设备有不同的显示效果,根据设备分辨率的不同来确定控件的尺寸。
- sp:可伸缩像素,采用与dp相同的设计理念,推荐设置文字大小时使用。