一、引言

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组件简单介绍的更多相关文章

  1. Android开发自学笔记(Android Studio) 目录

    开发环境如下: 操作系统:Windows 10 Pro IDE:Android Studio 1.3.X 或更高版本 其它请参见文章说明. 1. 环境搭建 1.1 (番外)AndroidStudio常 ...

  2. Android开发自学笔记(Android Studio)—4.1布局组件

    一.引言 Android的界面是有布局和组件协同完成的,布局好比是建筑里的框架,而组件则相当于建筑里的砖瓦.组件按照布局的要求依次排列,就组成了用户所看见的界面.在Android4.0之前,我们通常说 ...

  3. Android开发自学笔记(Android Studio)—4.5 ProgressBar及其子类

    一.前言 ProgressBar本身代表了进度条组件,它还派生出了两个常用的组件:SeekBar和RatingBar,他们的使用方法类似,只是显示界面有一定的区别.我们看一下API文档中的说明: 从图 ...

  4. Android开发自学笔记(Android Studio)—4.4 AdapterView及其子类

    一.引言       AdapterView本身是一个抽象类,而它派生的子类在用法上也基本相似,只是在显示上有一定区别,因此把他们也归为一类.       AdapterView具有如下特征: Ada ...

  5. Android开发自学笔记(Android Studio)—4.3ImageView及其子类

    一.引言 ImageView继承自View组件,主要功能用来显示图片,实际上他能显示的不仅是图片,Drawable对象都可以用ImageView来显示. ImageView派生了ImageButton ...

  6. Android开发自学笔记(Android Studio)—4.2TextView及其子类

    一.引言 TextView是我们最常用的一个控件了,它类似于C# Winform程序中的Lable,Java Swing编程中的JLable,不过相对功能更强大些,但从功能上看,它其实就是个文字编辑器 ...

  7. Android开发自学笔记(Android Studio1.3.1)—1.环境搭建

    一.引言 .Google推出的 毫无疑问,这个是它的最大优势,Android Stuido是Google推出,专门为Android"量身订做"的,是Google大力支持的一款基于I ...

  8. Android开发自学笔记(Android Studio1.3.1)—2.开始第一个Android应用

    一.前言      使用Android Studio开发Android应用是一件非常简单的事情,因为它会帮你自动完成很多工作.本篇我们主要完成一个单击按钮在文本框显示当前时间的简单应用,借此来演示一下 ...

  9. Android开发自学笔记(Android Studio1.3.1)—3.Android应用结构解析

    一.R文件是什么?      如上图所示,我们可以通过findViewById方法通过传入R.id.show找到我们的TextView元素,findViewById方法也很好理解,从View中通过Id ...

随机推荐

  1. 【UI插件】简单的日历插件(下)—— 学习MVC思想

    前言 我们上次写了一个简单的日历插件,但是只是一个半成品,而且做完后发现一些问题,于是我们今天尝试来解决这些问题 PS:距离上次貌似很久了 上次,我们大概遇到哪些问题呢: ① 既然想做一套UI库,那么 ...

  2. TypeScript的4种编译方式

    1.手动编译 1.1.首先找到TypeScript的安装目录,我的在"C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0".

  3. arcgis for flex或silverlight全国地图天气预报的实现

    系统架构是B/S,目前有两个不同的版本,1.开发语言是C#.silverlight,开发平台是.NET:2.开发语言是java.flex,开发平台是myeclise. 采用地图是ArcGIS全国地图, ...

  4. SharePoint 2013 Designer系列之数据视图

    在SharePoint使用中,数据展示是一块很重要的部分,很多时候我们会采用webpart的形式,但是有一些情况,我们不必使用开发,仅需使用Designer即可,下面让我简单介绍下数据视图的使用. 1 ...

  5. iOS多线程之1.从Thread看多线程的生命周期

      Thread 是多线程中最容易理解,但是使用起来又是最麻烦的一种多线程方法.为什么说容易理解呢?一个NSThread的对象就是一条线程.使用起来麻烦是因为,需要我们自己管理线程的生命周期:创建线程 ...

  6. 解析Javascript事件冒泡机制

    本资源引自: 解析Javascript事件冒泡机制 - 我的程序人生 - 博客频道 - CSDN.NET http://blog.csdn.net/luanlouis/article/details/ ...

  7. 使用adjacent_difference要注意的小问题

    adjacent_difference的源与目的地可以相同,这是在标准中说明的,所以我产生了疑问,会不会因为这样使用而改变了当前成员,而影响下一步计算呢,经试验,在vs2015里并不会. #inclu ...

  8. Ubuntu1404安装gogs过程

    一.Gogs介绍 Gogs (Go Git Service) 是一款极易搭建的自助 Git 服务. Gogs 的目标是打造一个最简单.最快速和最轻松的方式搭建自助 Git 服务.使用 Go 语言开发使 ...

  9. TortoiseSVN与VisualSVN Server搭建SVN版本控制系统

    本片主要介绍如何搭建SVN版本控制系统,主要使用工具: 1 客户端:TortoiseSVN (小乌龟) 2 服务端:VisualSVN Server 搭建出图形化管理,以及右键菜单版本控制管理的SVN ...

  10. yii2缓存的介绍和使用

    作者:白狼 出处:http://www.manks.top/yii2_cache.html 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律 ...