Android应用开发最重要的一份内容就是界面的开发,无论你程序包含的内容多么优秀,如若没有一个良好的用户交互界面,最终也只是会被用户所遗弃。Android SDK提供了大量功能丰富的UI组件,开发者只需要拖拖拽拽就能完成简单的应用,这些只是界面的展示,如果要完成优秀的用户交互,事件响应机制当然也是重点,这是后话。
Android SDK中绝大部分UI组件都在androd.widget及其子包、android.view及其子包下,Android应用中的所有UI组件都继承了View类,View类还有一个重要的子类:ViewGroup,下面简单介绍下这两个类。
View是什么,可能每个人都有自己不同的理解。在Android官方文档中是这么说的:这个类表示了用户界面的基本构建模块。一个View占用了屏幕上的一个矩形区域并且负责界面绘制和事件处理。View是用来构建用户界面组件(Button,Textfields等等)的基类。其实,说白了,View就是一个空白的矩形区域,类似于winform中的panel,swing开发中的JPanel,我们可以在这个空白的矩形区域内定义自己的控件。
对于View类而言,它是所有UI组件的基类,所以它是属性是所有组件都可以使用的,所以建议认真看一下API中关于View类的属性。
ViewGroup是View的子类,所以它也可以被当成View使用,它可以作为容器来放其他组件,由于ViewGroup是一个抽象类,所以实际通常都是使用ViewGroup的子类,例如UI组件的中布局类UI组件都是继承自ViewGroup的。
在实际操作中,无论创建哪种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
这些内容为暂定吧,可能会根据实际学习内容进行调整。