1、毕业答辩论文基于安卓的手机日程标准管理系统2012届毕业设计(论文)题 目基于安卓的手机日程管理系统姓名学号专业计算机科学与技术班级指导教师2012年6月基于安卓的手机日程管理系统摘 要随着生活节奏的逐步加快,人们常会有许多的重要工作需要去安排或完成,个人的日常工作、领导的重要会议、个人重要日期或者时间等。这些工作都需要在特定的时间给予醒目标识或者提示。而为了能尽可能的减少人们的负担,来更有效率的工作和更舒适的生活。这就需要有专门的日程管理系统来安排这些事务。日程管理系统的主要功能是完成个人一般日程和重要日程安排并提供提醒和查看的功能。如今随着信息技术的高速发展,手机已经成为现代人们生活所必不
2、可少的物品,将其作为日程管理系统的平台可以说是一个很好的选择。而且现如今手机安卓系统已经成为一门及其热门的技术,因此我选择将基于安卓的手机日程管理系统作为我的毕业设计课题。本系统是一个基于安卓手机平台的日程管理系统,具有基本的日程活动的增、删、改、查功能,在日历浏览中可突出显示有安排的日期。用户可根据不同的活动设置任务,便于对日程的管理。系统还具备提醒程序,可帮助管理重要活动,并且实现与网络数据同步的功能。系统是基于安卓的基础知识和Java语言,以及SQLite提供的数据的管理来开发的,最终取得了较圆满的成果。关键词:日程管理 Java 安卓MobilePhone Schedule Manag
3、ement System Based On AndroidAbstractAs the pace of life has been accelerating gradually, people often have many of the important work need to arrange or complete, personal daily work, leadership of the important meeting, personal important date or time, etc. All this work need to be in particular t
4、ime to give marked logo or hints. And in order to reduce the burden of the people as much as possible, to more efficient work and more comfortable life. This has to be special schedule management system to arrange these affairs. Schedule management systems main function is to make the personal gener
5、al schedule and important schedules and provide remind and view function.And now, with the high speed development of information technology, the mobile phone has become the modern people living an essential items, as a schedule management system platform can be said to be a very good choice. And now
6、 two mobile phone system, already become a and its popular technology, so I choose will be based on the mobile phone schedule management system andros as my graduation design task.This system is a result of the mobile platform based on schedule management system, have the basic agenda of activity in
7、crease and delete, change, check function, in the calendar can browse highlight is the date of the arrangement. Users can set according to different activities task, and is convenient for the management of the schedule. The system also has the remind program can help manage the important activities,
8、 and realize and network data synchronization function.System is based on the foundation of andros knowledge and Java language, and to provide the data management SQLite to development, and finally achieved satisfactory results.Key words: Schedule management; Java;Android目 录摘 要IABSTRACTII目 录I第一章 绪论1
9、 课题背景1 安卓平台简介2 安卓平台特色介绍2 安卓系统编程语言3 安卓开发的现状3第二章 系统开发环境与相关技术4 系统开发的环境4 系统开发软件的简介4 Eclipse的简介455 软件下载准备5 JDK安装5 Android SDK安装6 ADT安装7 创建AVD7 系统开发编程语言的简介8第三章 系统需求分析及概要设计10 系统的需求分析10 系统的概要设计10 系统的功能模块说明10 系统的功能模块结构图10第四章 系统的详细设计13 系统主界面的设计和实现13 系统主界面的头部菜单栏13 系统的日历界面14 系统的日历特色显示16 系统任务界面的设计17 任务界面的数据库准备18
10、 任务界面之新增界面20 任务界面之总日程界面28 任务界面之单一日程界面30 任务界面之实现对已有日程日期的标记31 系统设置界面32 系统关于界面33 系统底部菜单项34 日历界面使用的底部菜单项34 其他界面使用的底部菜单项的总览36结束语38参考文献39致谢40第一章 绪论 课题背景当今社会是信息社会,人们无论何时、无论何地都是在与信息打交道,您阅读的报纸是信息、看到的广告是信息、电视传播的是信息、上网浏览的是信息,当代人简直生活在“信息海洋”中。这么多的信息哪些是有用的,哪些是无用的,人们在信息丰富的社会中,难免会忘记一些重要信息,有时会掉一个寻呼机,有时会掉一个电话本或笔记本什么的
11、,这些“信息载体”也许包含着重要的个人信息。如何将这些有用的信息存储起来避免忘记或丢失,如何对这些有用信息进行有序地组织、管理以资对生活决策提供帮助,这正是信息管理软件要解决的问题。进入21世纪以来,无所不在的计算将打破传统意义上的计算机概念:使用更方便、移动更容易、功能更多样化的各种具有计算机功能的设备大量出现,并且在需要时,可以随时通过无线方式连接到移动数据通信网络中,以便高效地交换信息和获得各种服务。这种设备人们称之为无限设备(Mobile Device)。移动设备最根本的特征是移动性,即能够利用无线电波、微波或红外线等传输介质允许通信中的设备在一定范围内自由移动,其位置不受束缚,从而实
12、现通信双方至少有一方在移动中进行信息传输和交换的目的。移动设备从产生到现在的历史并不长,然而其发展速度却远远超出人们的预料。现如今,移动设备大行其道,全球有超过十亿部移动电话正在被使用,并且这个数目正在逐渐增加。在除美国之外的每个发达国家,拥有手机的人数比拥有计算机的人数更多。而目前,随着移动设备越来越普及及移动硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。目前国内最常见的移动开发平台有Symbian,iPhone,Windows Phone 以及Android。如今国内外都有非常多的Android 系统的用户。自从2011年第一季度,Android在全球份额首次超过
13、Symbian,跃居全球第一。截止2012年2月据,%的份额,%。考虑到如今手机系统的发展现状,以及Android平台系统自身所拥有的优势。因此,基于安卓平台开发一款手机应用软件具有较大的意义和可行性。 安卓平台简介Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。目前,最新版本为Android Ice Cream Sandwich (冰激凌三明治) 以及还在测试中的Android Jelly Bean(果冻豆)。
14、 安卓平台特色介绍在优势方面,Android平台首先就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营
15、商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性
16、,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。 安卓系统编程语言 在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年特别发布了针对初学者的Android S
17、imple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发。 在Android系统底层方面,Android使用C/C+作为开发语言。而Android应用层的开发,基本上全部是采用Java开发。但和我们一般互联网上应用的JAVA还是有些区别的。 此”JAVA是google自己做的一套实现来实现,和SUN的底层是不太一样的。不过对开发应用区别不大。 安卓开发的现状目前国内的 Android 开发还是主要以应用开发为主,主要分成3类:为企业开发应用、开发通
18、用应用(放到 Android Market或者其他App Market 销售)以及游戏开发(放到 Android Market 或者其他 App Market 销售)。第一类开发者一般身处规模较大的公司,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。除了根据需求对系统进行定制外,更多的工作在于为这些系统编写定制的应用。第二类开发者,一般处于创业型公司或者是独立开发者,他们的盈利方式主要是2种:为国外公司进行外包开发,或者通过Google 的移动广告(AdMob)通过广告点击分成。而理论上的通过付费下载的形式来盈利的,现在国内鲜见成功者。第三类开发者,目前和第二类开发者类似。
19、下图是开发者提交的 应用和游戏的数目所占的比例图, 从中也可以看出应用开发数目远超游戏开发。第二章 系统开发环境与相关技术 系统开发的环境Android 的上层应用程序是用Java 语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够, 因为是使用 Java 语言进行开发, 还应该有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还需要有Google提供的Android SDK。同时,还
20、需要在 Eclipse安装ADT,为 Android开发提供开发工具的升级或者变更,是Eclipse 下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建 Android 开发环境,从而进行Android应用程序的开发。(1) Eclipse (2) JDK(3) Android SDK(4) ADT(Android Development Tools) 系统开发软件的简介 Eclipse的简介Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Jav
21、a开发工具(Java Development Kit,JDK)。 虽然大多数用户很乐于将 Eclipse 当作 Java 集成开发环境(IDE)来使用,但 Eclipse 的目标却不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 这种平等和一致性并不
22、仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C+ 和 COBOL 等编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。(1)JDKJDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门
23、运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。(2) Android SDKSDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 因此,Android SDK 指的既是Android专属的软件开发工具包。(3)ADT(Android Development Tools)目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为A
24、ndroid开发提供开发工具的升级或者变更,简单理解为在Eclipse下开发工具的升级下载工具。 软件下载准备分别下载 JDK、Eclipse、Android SDK,并首先解压Eclipse完成安装。 JDK安装首先按提示完成SDK安装,然后设置环境变量(非必须)。属性-高级-环境变量-系统变量中添加以下环境变量: :E:AndroidJava(我所安装JDK的目录) :.;%JAVA_HOME%lib;%JAVA_HOME%lib;%JAVA_HOME%bin;:在开始追加 %JAVA_HOME%bin; 安装完成之后,检查JDK是否安装成功。打开cmd窗口,输入java version
25、查看JDK的版本信息。出现下面的画面表示安装成功了,如图2-1:图2-1 安卓环境设置JDK效果测试图 Android SDK安装 下载完成后解压到任意路径(我的解压路径为E:Androidandroid-sdk-windows)运行SDK ,点击Available Packages。 选择希望安装的SDK及其文档或者其它包,按需点击下面选项(开始下载安装所选包 )在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。 完成按“确定”后,重新启动计算机。重启计算机以后,进入cmd命令
26、窗口,检查SDK是不是安装成功。 运行 android h 出现以下的画面,表明安装成功,如图2-2:图2-2 安卓环境设置SDK效果测试图 ADT安装打开 Eclipse,进入菜单中的 Help - Install New Software 点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入。确定返回后,在work with后的下拉列表中选择我们刚才添加的ADT,点击下面出现的Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们,然后按步骤完成。完成之后:选择Win
27、dow Preferences. 在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为: E:Androidandroid-sdk-windows点击Apply。配置完成。 创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。1、在Eclipse中。选择Windows Android SDK and AVD Manager 2、点击左侧面板的Virtual Devices,再右侧点击New 3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创
28、建AVD 综上一切完成后安卓环境搭建完成。 系统开发编程语言的简介Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。Java 编程语言的风格十分接近C、C+语言。Java是一个纯的面向对象的程序设计语言,它继承了 C+ 语言面向对象技术的核心,Java舍弃了C +语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java SE 版本中,J
29、ava 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。但在 J2SE 发布后,Java 的执行速度有了大幅提升。与传统程序不同,Sun 公司在推出 Java 之际就将其作为一种开放的技术。全球数以万计的 Java 开发公司被要求
30、所设计的 Java 软件必须相互兼容。“Java 语言靠群体的力量而非公司的力量”是 Sun 公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。 Sun 公司对 Java 编程语言的解释是:Java 编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。 Java 平台是基于 Java 语言的平台。 Java的特点: 平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与 机器
31、无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。 Java的编程类似C+,学习过C+的读者将很快掌握Java的精髓。Java舍弃了C+的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。 Java吸取了C+面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在
32、类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的Object类及其子类的继承关系如同一棵倒立的树形,根类为Object类,Object类功能强大,经常会使用到它及其它派生的子类。 Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。 Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自己操纵内存减少了内存出错的可能
33、性。Java还实现了真数组,避免了覆盖数据的可能,这些功能特征大大提高了开发Java应用程序的周期。并且Java还提供了Null指针检测、数组边界检测、异常出口、Byte code校验等功能。 我们知道C,C+等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。Java不像C或C+,它不针对CPU芯片进行编译,而是把程序编译成称为自字节码的一种“中间代码”。字节码是很接近机器码的文件,可以在提供了java虚拟机(JVM)的任何系统上被解释执行。 java程序的基本组成单元就是类,有些类是自己编写的,有些是从类库中引入的,而类又是运行时动态装载的,这就使得Java
34、可以在分部环境中动态的维护程序及分类,而不像C+那样,没档期类库升级以后,如果想让程序具有新类库提供的功能,就需要修改程序,重新编译。第三章 系统需求分析及概要设计 系统的需求分析该系统是一个基于安卓平台的手机日程管理软件。它是为本软件的持有者提供日程管理方面服务的,它包括日历的查看、日历上日期对应日程的查看、总日程的查看、日程的增加、日程的删除、日程的修改、对本软件的设置以及软件相关信息的查看等。本软件有助于人们记住重要的日程并给予提醒,也有助于人们更好的调节自己的时间来减轻生活上的一些负担,更轻松及有效的过好每一天。 系统的概要设计 系统的功能模块说明(1)日历查看模块:拥有一个完整的日历
35、界面,包括头部的年月日、生肖、闰年的显示,还有每个日期上都分别有阳历和阴历的日期显示,并且日历中包含了各个重要的节日或纪念日等。在日历界面上每个日期都会跳到当前日期的日程添加界面或者是日程显示界面。日历界面上还有对存在日程的标记,有利于人们更好的管理日程。(2)日程管理模块:在本模块中包括总的日程显示页面和日历页面所跳转到的日程显示界面或者是日程添加界面。总日程显示界面每一个日程都会有它所包含的日期、时间、日程类型、重复类型和日程内容。日历日期所对应的日程显示界面也是相应的显示。而在日程添加界面中包含了显示界面所对应的各项数据、添加日程成功后会有对应日历日期的标记。另外也有对日程的一系列管理操
36、作的功能。(3)设置界面模块:在设置中包括了对日程的类型和重复类型的默认设置。(4)关于界面模块:关于界面中包含了本软件的设计信息及一些基本信息。 系统的功能模块结构图在程序设计分析的基础上,结合实际情况,得出本程序的功能模块结构图。在结构图中包括了功能模块的表示及其中部分功能的实现原理。首先是一个总的功能模块的结构图,其中包括了系统设计时的总体功能概括,如图3-1。日程管理系统主界面日历模块任务模块设置模块关于模块日历显示总日程显示类型设置关于界面单一日程显示图3-1 总系统功能模块然后在总体的功能模块后面是主体功能的详细模块显示。在日历界面显示上可分为几个部分,详细见图3-2,日历模块日历
37、模块日历模块日历显示阴历显示节假日显示日期显示图3-2 日历显示模块 还有就是日程的功能模块的详细介绍。总体书写了日程添加界面的功能点,结构图如图3-3所示,新建日程显示重复类型选择日程时间书写日程类型选择日程内容书写图3-3 日程界面模块第四章 系统的详细设计 系统主界面的设计和实现 系统主界面的头部菜单栏制作这个头部菜单栏是为了提升软件的可操作性,我用的是TabHost+RadioGroup相结合的方法来制作这个部分的。菜单栏的底部位置是通过TabHost这个布局来实现的,然后是LinearLayout的线性布局来布置内容。内部的选项卡是通过TabWiget来实现首先建立好Android工
38、程(我的工程名为:ScheduleManager),在工程下的res/layout下建立一个名为main的空xml文件,然后在这个文件里按照思路来添加布局代码。主界面的菜单选项使用RadioGroup来建立,在这里的布局中RadioGroup里容纳4个RadioButton,而RadioButton是单选按钮。在这种情况下就只有也只能有一个RadioButton能被选择,并且在开始时默认了第一个按钮被选中。其中RadioButton的实现方式是在设置了内部的文字,然后再按钮的顶部上添加上图片,实现的代码如下:从上述代码可以看到,在菜单的每个选项卡样式都是调用了style上的main_tab_b
39、ottom来实现样式的,而main_tab_bottom的背景background的值是drawable/btn_bg ,btn_bg不是一个简单的背景图片,而是一个xml文件,通过这个文件可以实现菜单选项卡切换时的背景切换的效果,使得这个菜单栏更加的美观,代码是使用了安卓的selector来实现,在这里是通过不停的条件来判断使用哪一个item的,里面包括了几个属性值,如是否获得焦点、是否响应事件、是否点击三个条件。实施的代码如下: 制定完主页面布局后,在src/(OnCreate方法是用来初始化Activity实例对象的)中调用布局,到现在为止顶部菜单栏的布局已经基本完成,但现在里面所对应的
40、内容还是空的。所以就需要在这里给tabHost中添加tab内容,以第一格的tab为例,先是通过Intent的方式新建个mDate,用来实现页面的跳转的方法,然后动态用tabHost来通过addTab的方法添加对应TabSpec的值和各个属性。最后在添加RadioGroup的选择操作函数,这里是通过switch来完成对应按钮的功能的实现,。最终的效果如图4-1:图4-1 头部菜单栏效果图 系统的日历界面系统主界面默认选择日历界面在头部菜单栏下方。(1)首先是建立一个布局文件,上面一部分是显示年月日、生肖和农历的干支纪年。使用的是一个TextView类,对应的在日历的CalendarActivit
41、y文件中加入函数来添加头部的年份等信息。首先需要写了一个CalendarView类,这是为日历显示所写的一个类,在其中使用重载的方法定义了几个不同参数的CalendarView,用于不同的情况。在CalendarActivity中实例化CalendarView并且使用CalendarView中的一个方法CalendarView(this, getResources(),jumpMonth,jumpYear,year_c,month_c,day_c);然后书写方法来添加头部的年份 闰哪月等信息。首先是对这个页面的头部进行布局,通过动态化的方法来完成。然后建立一个可以进行改变值的StringBuf
42、fer类型的参数textDate。对这个参数进行append操作,添加例如年月日的知道参数里。其中有一个闰年判断的条件函数,()的值惊醒判断的。完成后对界面使用setText方法来赋值到界面上。最后是对界面的一些美化,同样使用动态布局模式进行。(2)下面是日历界面中主体日期部分显示的完成在CalendarActivity文件初始化实例对象时加入动态添加布局文件的方法。我将此方法命名为addGridView。在这个方法中同样是先进行动态化布局,由于这里用的是GridView,这个GridView应用于将一系列的空间组织成二维网格的形式显示出来,所以适用于我在这里进行的日期界面的建立。同样的首先是
43、动态化布局的建立,这可以实例化GridView为gridView参数进行的。在这里需要添加GridView控件的列为7,列宽为46。并且还加上判断屏幕大小的条件,这需要加入取得屏幕大小的对应函数,这里如果是800*480屏幕的话,就将列宽设置为69。然后进行设置水平和竖直的间距、取值边框、设置居中等操作。在这个方法里面还需加入个OnTouch方法,用来将gridView中的触摸事件回传给gestureDetector,进行下面的触摸操作,即: /将gridview中的触摸事件回传给gestureDetectorOverridepublic boolean onTouch(View v, Mot
44、ionEvent event) return .onTouchEvent(event););创建完日历的布局后,是在里面添加上具体的日期。就当前显示的页面来说,是建立几个对应的参数,用来显示或传接数据。例如在函数开始时就String dayNumber = new String49; 这是作为对GridView控件内进行标记序列的,用于下面条件语句的判断等,还有就是界面内的一些控件名的实例化。 然后是动态化的对页面进行属性值的设置。其中在对日期中的第一行,即周一等值的这行,设置字的颜色及背景图。得出这行的位置就需要通过对参数position(对应编号)进行判断是否在7以内。 下一步是当前月信息
45、的显示,这也需要条件函数来判断是否为当前月,也是来判断参数position是否在范围内。在这个月中还需对当天来一个特殊化,即设置当天日期的背景为图片current_day_bgc,字色为白。 在这些操作外,还需要得到一些数值来用于日期数据的插入,在这里建立了个getCalendar方法,如判断是否为闰年的函数返回值isLeapyear,某月的总天数,某月的第一天是星期几,上个月总天数。在这方法中再执行方法getweek,用来得出以后需要标记的日期,这个在后面来介绍。通过上述的步骤基本完成了日历界面中的初步建设。(3)由于日历菜单需要能通过手势触摸来进行翻页,所以要在总体布局下建立一个ViewFlipper类,这个类是用来实现屏幕的切换效果的。先是在布局中建立这个类,然