android基础学习-android篇day12-android的UI基础入门

Activity介绍

内容概览:

  • -什么是Activity?
  • -Activity的启动流程
  • -Activity与布局之间的关系
  • -Activity与View之间的关系

 什么是Activity?

  • -Activity是一个应用程序组件
  • -为应用程序提供一个可视化界面
  • -用户与应用程序进行交互的界面

启动Activity要素

什么是XML?

  1. XML(Extensible Markup Language)也叫做可扩展标记语言.

  2. XML 是软件开发中最常用的一项基本技能,在好多框架中都会用到 xml

  3. 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:同一控件可以设置多种监听器,对不同状态进行捕获监听。 

添加监听器的步骤 :

  1. 布局文件中定义控件
  2. 在Activity中定义控件类属性
  3. 在Acitivity中获取代表控件的对象
  4. 定义一个类实现监听器的接口,并重新其抽象方法
  5. 生成监听器对象
  6. 为控件添加监听器

基础布局介绍

  • -什么是Layout?

  • -Layout与ViewGroup之间的关系

  • -Layout实现方式

  • -Layout的种类

什么是Layout?

  • Layout-界面布局,为应用程序提供界面结构
  • 控制Activity中控件的大小、位置、颜色等熟悉的方法
  • 如果UI控件是盘子。Activity是餐桌,如何摆放盘子才能让餐桌看起来美观,使用Layout提供架构。

Layout与ViewGroup的关系

布局的种类 

布局的实现方式: 

编写布局文件注意的问题

  1. 每一个Layout布局文件有且只有一个根标签(元素),必须为View或者ViewGroup对象
  2. 在根标签下,添加子元素,并逐渐建立一个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进行跳转

猜你喜欢

转载自blog.csdn.net/qq_17846019/article/details/82720958