第二章、Android UI 布局 - Android移动开发基础笔记

目录

前言

一、布局的创建

二、布局的类型

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 界面

二、布局的类型

Android 开发中常用的 5 种常用布局
布局标签特点
线性布局LinearLayout

以水平或垂直方向排列

相对布局RelativeLayout

通过相对定位排列

帧布局FrameLayout

开辟空白区域,帧里的控件(层)叠加

表格布局TableLayout

表格形式排列

绝对布局AbsoluteLayout

通过x,y坐标排列

1、线性布局

        线性布局(LinearLayout)主要以水平或垂直方式来显示界面中的控件。当控件水平排列时,显示顺序依次为从左到右,当控件垂直排列时,显示顺序依次为从上到下。

        在线性布局中,有一个重要的属性 orientation ,用于控制控件的排列方向,该属性有 vertical 和 horizontal (默认)两个值,其中vertical 表示线性布局垂直显示,horizontal 表示线性布局水平显示。

注意:

        当控件水平排列时,控件属性layout_width只能设置为wrap_content(包裹内容让当前控件根据控件内容大小自动伸缩),否则其余控件会被挤出屏幕右侧不显示。同理,如果控件垂直排列也会出现同样情况。

        当控件水平排列时,如果控件未占满一行,会留有空白区域,这样既不美观又浪费空间。此时,可以利用 layout_weight 属性解决这个问题,该属性被称为权重,通过比例调整布局中所有控件的大小。

        当控件使用权重属性时,布局宽度属性值通常设置为 0。

2、相对布局

        相对布局(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相同的设计理念,推荐设置文字大小时使用。

3、帧布局

        帧布局(FrameLayout)为每个加入其中的控件创建一个空白区域(称为一帧,每个控件占据一帧)。所有控件都默认显示在屏幕左上角,按照先后放入的顺序重叠摆放。帧布局的大小由内部最大控件的决定。

FrameLayout 属性
布局属性功能描述
Android:forground设置帧布局容器的前景图像
Android:forgroundGravity设置容器的前景图像显示位置

4、表格布局

        表格布局(TableLayout)是以表格形式排列控件的,通过行和列将界面划分为多个单元格,每个单元格都可以添加控件。
        表格布局需要和TableRow配合使用,每一行都由TableRow对象组成,因此TableRow的数量决定表格的行数,而表格的列数是由包含最多控件的TableRow决定的,例如第1个TableRow有两个控件,第2个TableRow有三个控件,则表格列数为3。

TableLayout 布局属性
布局属性功能描述
android:stretchColumns设置该列被拉伸,列号从“0”开始
android:shrinkColumns设置该列被收缩,列号从“0”开始
android:collapseColumns设置该列被隐藏,列号从“0”开始
TableLayout 控件属性
控件属性功能描述
android:layout_column设置该单元显示位置
android:layout_span设置该单元格占据几列,默认为1列

5、绝对布局

        绝对布局(AbsoluteLayout)是通过指定x、y坐标来控制每一个控件位置的。

AbsoluteLayout 属性
布局属性功能描述
android:layout_x设置 x 坐标
android:layout_y设置 y 坐标

三、总结

        本篇文章主要介绍了 Android 中的布局创建以及常用的布局类型等知识。


四、尾注

        希望这篇文章对你有所帮助,记得转载、点赞、收藏,支持一下,小编将会持续更新哦

  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小泽的熊先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值