Android UI 基础知识之布局的声明和结构等

一、AndroidUI
(一)UI
用户界面(UserInterface , 简称UI , 亦称使用者界面)是系统和用户之间进行交互和信息交换的媒介 , 它实现信息的内部形式与人类可以接受形式之间的转换 。
软件设计可分为两个部分:编码设计与UI设计 。
(二)AndroidUI
Android应用界面包含用户可查看并与之交互的所有内容 。 Android提供丰富多样的预置UI组件 , 例如结构化布局对象和UI控件 , 您可以利用这些组件为您的应用构建图形界面 。 Android还提供其他界面模块 , 用于构建特殊界面 , 例如对话框、通知和菜单 。
AndroidUI都是由布局和控件组成的
二、布局
布局(layout)可定义应用中的界面结构(例如Activity的界面结构) 。 布局中的所有元素均使用View和ViewGroup对象的层次结构进行构建 。 View通常绘制用户可查看并进行交互的内容 。 然而 , ViewGroup是不可见容器 , 用于定义View和其他ViewGroup对象的布局结构 。
(一)布局的结构
定义界面布局的视图层次结构图示:
Android UI 基础知识之布局的声明和结构等

View对象通常称为“微件” , 可以是众多子类之一 , 例如Button或TextView 。
ViewGroup对象通常称为“布局” , 可以是提供其他布局结构的众多类型之一 , 例如LinearLayout或ConstraintLayout 。
(二)声明布局
在XML中声明界面元素 , Android提供对应View类及其子类的简明XML词汇 , 如用于微件和布局的词汇 。
也可使用AndroidStudio的LayoutEditor , 并采用拖放界面来构建XML布局 。
Android UI 基础知识之布局的声明和结构等

在运行时实例化布局元素 。 您的应用可通过编程创建View对象和ViewGroup对象(并操纵其属
性) 。
提示:使用LayoutInspector调试布局 , 可以查看通过代码创建的布局
、在连接的设备或模拟器上[运行您的应用] 。
、依次点击Tools>LayoutInspector 。
、在显示的ChooseProcess对话框中 , 选择要检查的应用进程 , 然后点击OK 。
Android UI 基础知识之布局的声明和结构等

(三)编写XML
利用Android的XML词汇 , 按照在HTML中创建包含一系列嵌套元素的网页的相同方式快速设计
UI布局及其包含的屏幕元素 。
每个布局文件都必须只包含一个根元素 , 并且该元素必须是视图对象或ViewGroup对象 。
定义根元素后 , 可以子元素的形式添加其他布局对象或控件 , 从而逐步构建定义布局的视图层次结
构 。
在XML中声明布局后 , 以.xml扩展名将文件保存在Android项目的res/layout/目录中 。
(四)加载XML资源
当编译应用时 , 系统会将每个XML布局文件编译成View资源 。 在Activity.onCreate回调内 , 通过调用setContentView , 并以R.layout.*layout_file_name*形式向应用代码传递布局资源的引用 , 加载应用代码中的布局资源 。
(五)属性
每个View对象和ViewGroup对象均支持自己的各种XML属性 。 某些属性是View对象的特有属性(例如 , TextView支持textSize属性) , 但可扩展此类的任一View对象也会继承这些属性 。 某些属性是所有View对象的共有属性 , 因为它们继承自View根类(例如id属性) 。
此外 , 其他属性被视为“布局参数” , 即描述View对象特定布局方向的属性 , 如由该对象的父ViewGroup对象定义的属性 。
(六)ID
任何View对象均可拥有与之关联的整型ID , 用于在结构树中对View对象进行唯一标识 。 编译应用后 , 系统会以整型形式引用此ID , 但在布局XML文件中 , 系统通常会以字符串的形式在id属性中指定该ID 。 这是所有View对象共有的XML属性(由View类定义) , 并且您会经常使用该属性 。