Android开发自学笔记(Android Studio)—4.界面编程与View组件简单介绍
一、引言
Android应用开发最重要的一份内容就是界面的开发,无论你程序包含的内容多么优秀,如若没有一个良好的用户交互界面,最终也只是会被用户所遗弃。Android SDK提供了大量功能丰富的UI组件,开发者只需要拖拖拽拽就能完成简单的应用,这些只是界面的展示,如果要完成优秀的用户交互,事件响应机制当然也是重点,这是后话。
Android SDK中绝大部分UI组件都在androd.widget及其子包、android.view及其子包下,Android应用中的所有UI组件都继承了View类,View类还有一个重要的子类:ViewGroup,下面简单介绍下这两个类。
二、View
View是什么,可能每个人都有自己不同的理解。在Android官方文档中是这么说的:这个类表示了用户界面的基本构建模块。一个View占用了屏幕上的一个矩形区域并且负责界面绘制和事件处理。View是用来构建用户界面组件(Button,Textfields等等)的基类。其实,说白了,View就是一个空白的矩形区域,类似于winform中的panel,swing开发中的JPanel,我们可以在这个空白的矩形区域内定义自己的控件。
对于View类而言,它是所有UI组件的基类,所以它是属性是所有组件都可以使用的,所以建议认真看一下API中关于View类的属性。
三、ViewGroup
ViewGroup是View的子类,所以它也可以被当成View使用,它可以作为容器来放其他组件,由于ViewGroup是一个抽象类,所以实际通常都是使用ViewGroup的子类,例如UI组件的中布局类UI组件都是继承自ViewGroup的。
四、Context
在实际操作中,无论创建哪种UI组件,都需要传入一个Context的参数,而Context是什么呢?在加载资源、启动一个新的Activity、获取系统服务、获取内部文件(夹)路径、创建View操作时等都需要Context的参与,可见Context的常见性。Context字面意思上下文,或者叫做场景,也就是用户与操作系统操作的一个过程,比如打电话,场景包括电话程序对应的界面,以及隐藏在背后的数据;Android系统的角度来理解:Context是一个场景,代表与操作系统的交互的一种过程。从程序的角度上来理解:Context是个抽象类,而Activity、Service、Application等都是该类的一个实现,因此,Activity、Service都可以直接作为Context使用。
五、结语&预告
从上一章到这一章,隔了太久的时间了,最近公司管理层变动,人员流动很大,所以作为小人物的我忙的热火朝天…进度有点跟不上了,但是又不想放下技术的学习,所以挤出来点时间继续好好看书、看博客好好学习。Android Studio最新的版本都已经更新了1.5.X了,我机器上也更新到了1.4.1,所以文章标题也不再写版本信息了,只要是1.3.x后的版本应该都是支持的,有问题可以多互相沟通。
好了,说点学习的东西,对于UI组件的学习,我觉得疯狂讲义这本书安排的非常合理,我也非常认可,所以我学习也是按照这种思路来学习,后面的UI组件的章节也会照着这个思路来。因为UI组件比较多,如果不理顺他们的关系,孤立的去学习,强行的去记忆,估计学习起来也会很费劲,所以下面我们根据它们的内在关联,分成了几组进行学习,以下是分组情况:
第一组:布局组件
LinearLayout(线性布局)、TableLayout(表格布局)、FrameLayout(框架布局)、RelativeLayout(相对布局)、GridLayout(网格布局)、AbsoluteLayout(绝对布局)
第二组:TextView及其子类
TextView、EditView、Button、RadioButton、CheckBox…
第三组:ImageView及其子类
ImageView…
第四组:AdapterView及其子类
ListView…Adapter接口…
第五组:ProgressBar及其子类
ProgressBar、SeekBar、RatingBar…
第六组:ViewAnimator及其子类
ViewSwitcher、ImageSwitcher、TextSwitcher…
第7组:其它杂项组件
Toast、日历视图、时间(日期)选择器、数值选择器、搜索框…
第8组:对话框
日期(时间)选择对话框、进度对话框…
第9组:菜单
第10组:ActionBar
这些内容为暂定吧,可能会根据实际学习内容进行调整。
Android开发自学笔记(Android Studio)—4.界面编程与View组件简单介绍的更多相关文章
- Android开发自学笔记(Android Studio) 目录
开发环境如下: 操作系统:Windows 10 Pro IDE:Android Studio 1.3.X 或更高版本 其它请参见文章说明. 1. 环境搭建 1.1 (番外)AndroidStudio常 ...
- Android开发自学笔记(Android Studio)—4.1布局组件
一.引言 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.在Android4.0之前,我们通常说 ...
- Android开发自学笔记(Android Studio)—4.5 ProgressBar及其子类
一.前言 ProgressBar本身代表了进度条组件,它还派生出了两个常用的组件:SeekBar和RatingBar,他们的使用方法类似,只是显示界面有一定的区别.我们看一下API文档中的说明: 从图 ...
- Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类
一.引言 AdapterView本身是一个抽象类,而它派生的子类在用法上也基本相似,只是在显示上有一定区别,因此把他们也归为一类. AdapterView具有如下特征: Ada ...
- Android开发自学笔记(Android Studio)—4.3ImageView及其子类
一.引言 ImageView继承自View组件,主要功能用来显示图片,实际上他能显示的不仅是图片,Drawable对象都可以用ImageView来显示. ImageView派生了ImageButton ...
- Android开发自学笔记(Android Studio)—4.2TextView及其子类
一.引言 TextView是我们最常用的一个控件了,它类似于C# Winform程序中的Lable,Java Swing编程中的JLable,不过相对功能更强大些,但从功能上看,它其实就是个文字编辑器 ...
- Android开发自学笔记(Android Studio1.3.1)—1.环境搭建
一.引言 .Google推出的 毫无疑问,这个是它的最大优势,Android Stuido是Google推出,专门为Android"量身订做"的,是Google大力支持的一款基于I ...
- Android开发自学笔记(Android Studio1.3.1)—2.开始第一个Android应用
一.前言 使用Android Studio开发Android应用是一件非常简单的事情,因为它会帮你自动完成很多工作.本篇我们主要完成一个单击按钮在文本框显示当前时间的简单应用,借此来演示一下 ...
- Android开发自学笔记(Android Studio1.3.1)—3.Android应用结构解析
一.R文件是什么? 如上图所示,我们可以通过findViewById方法通过传入R.id.show找到我们的TextView元素,findViewById方法也很好理解,从View中通过Id ...
随机推荐
- RegExp类型exec()方法的返回值说明
之前看别人写的插件经常会用到RegExp对象来验证输入,并且获取一些那时我并不晓得是什么东西的数组,来取值进行自定义的逻辑处理.今天学习了一下RegExp类型.终于有了一个初步的了解,至少不会看一会就 ...
- arcgis server10.2.2之地理编码服务发布
1.地理编码工具(Geocoding Tools)locator制作 打开arcCatalog,找到工具箱ArcToolbox中的Geocoding Tools---Create Addres ...
- CoreGraphics-线段常见属性及渲染模式介绍
线段常见属性: 1.线宽 2.线头样式 3.接头样式 4.颜色(包括描边颜色和填充颜色) override func draw(_ rect: CGRect) { // 获取图形上下文对象 let c ...
- LeakCanary内存泄漏检测工具使用步骤
LeakCanary内存检测工具使用步骤: 第一步,进入app目录下的build.gradle,在最下面找到dependencies{},里面添加如下三行语句: debugCompile 'com.s ...
- ORA-00600: internal error code, arguments: [kcratr1_lastbwr], [], [], [], [], [], [], []
今天在PlateSpin Forge(关于PlateSpin相关介绍,请见最下面部分简单介绍) 复制出来的一台数据库服务器上,测试数据库能否正常启动时,遇到了"ORA-00600: inte ...
- 关于Java中枚举Enum的深入剖析
在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定.Java也不例外.Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析. 什么是Enum Enum是自Java ...
- 从零自学Hadoop(13):Hadoop命令下
阅读目录 序 MapReduce Commands User Commands Administration Commands YARN Commands User Commands Administ ...
- Python检查xpath和csspath表达式是否合法
在做一个可视化配置爬虫项目时,需要配置爬虫的用户自己输入xpath和csspath路径以提取数据或做浏览器操作.考虑到用户的有时会输入错误的xpath或csspath路径,后台需要对其做合法性校验. ...
- Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理1
首先给上项目的整体框架图:,这里我没有使用BLL,因为感觉太烦了就没有去使用. 那么接下来我们首先先去Model层中添加Model. 管理员类: using System; using System. ...
- 【Linux学习】Vi 操作命令集合
Vi 操作命令集合 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文 ...