Activity介绍
内容概览:
- -什么是Activity?
- -Activity的启动流程
- -Activity与布局之间的关系
- -Activity与View之间的关系
什么是Activity?
- -Activity是一个应用程序组件
- -为应用程序提供一个可视化界面
- -用户与应用程序进行交互的界面
启动Activity要素
什么是XML?
XML(Extensible Markup Language)也叫做可扩展标记语言.
XML 是软件开发中最常用的一项基本技能,在好多框架中都会用到 xml
XML 也是一种数据交换格式。
XML与HTML的区别
比较内容 | HTML | XML |
可扩展性 EXTENSION | 不具有扩展性 | 是元标识语言,可用于定义新的标 识语言 |
侧重点 | 侧重于如何表现信息 | 侧重于如何结构化地描述信息 |
语法要求 | 不要求标记的嵌套,配对等,不 要求标识之间具有一定的顺序 | 严格要求嵌套,配对,并遵循 DTD (文档类型定义)的树形结构 |
可读性及可维护性 | 难于阅读,维护 | 结构清晰,便于阅读,维护 |
数据和显示的关系 | 内容描述与显示方式整合为一 体 | 内容描述与显示方式相分离 |
保值性 | 不具有保值性 | 具有保值性 |
编辑及浏览工具 | 已有大量的编辑,浏览工具 | 编辑,浏览工具尚不成熟 |
更多说明:
- XML 同 HTML 都来自 SGML。
- HTML 是一种固定格式的超文本标识语言,因格式固定,标识有限,故难以扩展。
- 而 XML 保留了 SGML 的可扩展功能,可以定义其他语言,同时,用户可以自己定义 XML
- 的标识。
- XML 提供了一个直接“处理”web 数据的通用方法,而 HTML 只是 web”显示”数据的通用方法。
- XML 着重描述的是 web 页面的”内容”,而 HTML 着重页面”显示格式“。
- XML 使机器能交谈(能自动处理信息),HTML 方便了人与人的交流(只是网络初级阶段)。
- XML 具有良好的交互性,它可以在客户机上进行数据操作,不需与服务器交互,极大
- 地减轻了服务器的负担。
- HTML 不支持深层的结构描述,而 XML 的文件结构嵌套可以复杂到任何程度。
什么是View?
- "屏幕方块内所显示的内容,都可以称为View或View的子类"
如何获取Acitivity中控件对象?
- (TextView)findViewById(R.id.textView1);
- 通过findViewById返回View类型
- 通过(TextView)类型转换View的向下转型 为TextView
如何动态更改控件的属性?
- 第一步:获取View的对象
- 第二步:通过对象调用.set方法即可设置
为控件添加监听器
Q:什么是监听器?
- A:监听器是一个对象,用于捕获View的状态。当View的状态发生改变时可使用监听器对其进行相应操作;
- A:同一控件可以设置多种监听器,对不同状态进行捕获监听。
添加监听器的步骤 :
- 布局文件中定义控件
- 在Activity中定义控件类属性
- 在Acitivity中获取代表控件的对象
- 定义一个类实现监听器的接口,并重新其抽象方法
- 生成监听器对象
- 为控件添加监听器
基础布局介绍
-
-什么是Layout?
-
-Layout与ViewGroup之间的关系
-
-Layout实现方式
-
-Layout的种类
什么是Layout?
- Layout-界面布局,为应用程序提供界面结构
- 控制Activity中控件的大小、位置、颜色等熟悉的方法
- 如果UI控件是盘子。Activity是餐桌,如何摆放盘子才能让餐桌看起来美观,使用Layout提供架构。
Layout与ViewGroup的关系
布局的种类
布局的实现方式:
编写布局文件注意的问题
- 每一个Layout布局文件有且只有一个根标签(元素),必须为View或者ViewGroup对象
- 在根标签下,添加子元素,并逐渐建立一个View层次来定义你的Layout。
gravity属性:
gravity与layout_gravity
- android:gravity: 用于设置该控件中内容相对于该控件的对对齐方式
- android:layout_gravity: 用于设置该控件相对于父控件的对齐方式
- 注意:
- android:gravity:可以不用考虑当前布局的方向
- android:layout_gravity:需要考虑当前布局的对象
- 当父控件的位置android:orientation="vertical"为垂直方向时,layout_gravity只有水平方向的设置才起作用,垂直方向的设置 不起作用。即:left,right,center_horizontal 是生效的;而gravity都可以使用。
padding和 margin边距的属性
- padding:
- 用于设置该控件中内容相对于该控件的边距,即内边距。
- margin:
- 用于该控件相对于控件的边距,即外边距
weight属性 :
layout_weight的值用于在线性布局(只在线性布局)中指定父控件剩余空间的比例分配。
距离单位解析
注意:在使用固定长度-单位设置的时候:设置控件宽高dp 字体大小sp
定义一个activity的流程:
- -创建一个Activity子类
- -重写Acitivity中的oncreate方法
- -在AndroidManifest.xml中对Activity进行注册
启动一个activity流程:
- -创建Intent意图对象()
- -调用setClass设置要启动那个Activity
- -调用startActivity进行跳转