2.1.2 java 泛型类型
泛型是Java SE 1.5的新特性,它是对java语言类型系统的一种扩展,用来支持创建按照类型进行参数化的类,它的本质是参数化类型[10]。它的主要目标是提高java的类型安全,通过泛型定义的变量,编译器可以根据变量的类型限制在一个较高的程度上验证它的类型假设。泛型还有一个附加的好处是可以消除强制类型转换,从而使代码更加便于阅读,减少代码出错的概率。
2.2 相关Android知识
2.2.1 Android UI控件
Android应用程序的用户界面是用户直接与应用交互的渠道,其直接影响到用户的体验、软件的质量。而Android系统里面提供了一系列标准UI库,并通过布局文件将其组织到相应的活动,活动获得具体的控件对象然后通过全局的R文件进行检索。目前使用比较多的也是本课题所关注的UI控件包括Button控件、EditText控件、TextView文本控件、CheckBox多选控件、RadioGroup单选控件以及ListView列表控件等,这些控件共同组成了Android页面。了解相关控件的基本原理与基础功能,是进行安卓开发的前提。
2.2.2 Android View绘制机制
Android系统的视图结构设计采用了组合模式[11],即View作为所有图形的基类,ViewGroup对View继承扩展为视图容器类,由此就可以得到视图的基本结构—树形结构:
图2.1 view树形结构图
而整个View树的绘制流程为:当 Activity 接收到焦点的时候,它会被请求绘制布局,该请求由Android framework 处理.绘制是从根节点开始,对布局树进行 measure 和 draw。整个 View 树的绘图流程在ViewRoot.java类的performTraversals()函数展开,该函数所做的工作可简单概况为是否需要重新计算视图大小(measure)、是否需要重新安置视图的位置(layout)、以及是否需要重绘(draw) [12]。其流程图为:
图2.2 view树绘制流程图
2.2.3 Android 动画介绍
在Android的FrameWork中,为我们提供了三种动画的实现方式:逐帧(Frame)动画、视图动画(View Animation)和属性动画(Property Animation) [13]。由于,这三种动画的实现方式和针对面不一样,应用的范围也有所区别,因此我们需要根据具体的需求来选择正确动画类型。
1) 逐帧动画:该动画的方式就是将动画的过程的每一张静态图片都收集起来,然后依次显示这些图片,利用人眼的“视觉停留”的原理,给用户产生动画的效果。该方式虽然笨拙,但是也很有用,例如在浏览图片的时候,就可以使用这种方式实现逐帧浏览了。
2) 视图动画:该动画方式只是针对于View对象,而要实现该动画时,只需要给出两个关键帧的相关属性,Android会给你生给定成时间段内的两关键帧的动画渐变过程。
3) 属性动画:为了弥补视图动画的不足,Android在3.0中引入了属性动画。和视图动画专注与视图效果不同,它更专注于对象的属性的变化,通过改变对象的属性而实现动画,不论该对象是否可见。
2.3 Material Design知识介绍
Material Design是Google I/O 2014开发者大会推出的新的设计语言 ,其需要明亮、高对比度、浓烈的颜色,使用宽泛的配色来填充设计,让图片变得沉稳[14]。它不再让像素处于同一平面,而是让他们按照规则处于空间当中,具备不同的文度。它还规范了Android的运动元素,让按钮的弹入弹出,卡片的滑入滑出以及一个界面变成另一个界面的方法,都是秩序的、深思熟虑过的。通过这之间的动画过程,Material Design给人一种全新的美的体验,让安卓应用的整体美观和用户体验得到了质的飞跃。 基于MaterialDesign的安卓快速开发平台的设计与应用(3):http://www.751com.cn/jisuanji/lunwen_21730.html