基于Android平台的日历系统的设计
程锦+鲁泽坤
摘要:针对智能手机用户对日历的需求,基于Android内核和架构,设计了自定义控件和相关算法,实现了对日历的查看、日期切换、节日查询等多项功能,并附加了记事本、身体健康数据记录等常用功能,体现了日历系统的实用性和方便性。
关键词:Android;日历查看;节日查询
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)12-0058-02
1 概述
这是一个移动互联网应用越来越普遍的年代,智能手机的用户群体越来越广大,随处可见拿着手机的人群。随着生活节奏的加快,人们对信息需求量越来越大,对信息准确性要求越来越高,这些都要基于对时间和日期的更高和更多的需求,传统的日历已经不能满足人们的要求,手机平台上的日历系统应运而生,用户可以随时通过手机掌握日期和节日等信息。
本设计的预期目标为:
1)功能强大:除了日历的基本功能(查看日期)外,还实现了农历阴历互转、健康查询、日期查询、每日签到等功能。
2)操作方便:对于Android手机用户来说,本软件使用方便简单,功能使用方法一看便知,大大减少了用户的操作难度。
2 关键性技术
2.1 Android平台
Android是一种开放源码的操作系统,是现在智能手机采用的主流操作系统。Android操作系统最初由AndyRubin开发,最初只能使用Java语言进行基于Android平台的应用程序的开发,随着技术的成熟,Android快速发展,现在已经可以使用其他编程语言来进行基于Android平台的应用程序开发,因此越来越多的设计开发人员投入到基于Android平台的应用程序开发中,Android平台得到发展,充分体现其开放性。
2.2 XML技术
XML,即可扩展标记语言,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。
3 需求分析
3.1 系统需求
日历系统的用户是Android手机用户群体,因此,系统要满足大部分Android用户的需要,需要具备查看日历及相关的一些功能。
3.2 技术需求
日历系统采用现在最火的移动终端系统Android系统,利用分层设计的原则。需要开发人员熟悉Android平台和Java编程,并且对日历的算法有深刻的理解,并对Android界面绘制有一定的掌握,另外还需要了解Sqlite数据库,WebService技术和Xml解析技术。
4 概要设计
4.1 设计思想
本设计以日历功能为主体,整合多种方便应用的功能为辅,利用模块化的设计将各个功能整合为一个功能方便的类生活助手的应用。系统各个功能之间以独立的方式设计,便于后期增加功能。
4.2 功能需求
日期的查看功能:主界面可以看到当月的日历,并能查看其他月份的日历。
记事本:用户可以记录自己的日志,记录重要的信息,以防忘记。
节日信息的查看:用户可以随时通过手机查看节日信息,十分方便。
身体健康:用户可以通过软件记录身体的健康状况,实现对比。
每日签到:用户可以在每天打开应用的时候签到,记录使用日历的情况。
4.3 功能模块设计
主界面设计:用户点击图标,即可进入日历系统的主界面,主界面上显示当前月份的日期,当前日期突出显示。日期下面设计五个按钮,分别是上一年、下一年、上一月、下一月和今天,前面四个按钮是用来切换月份以查看相应月份的日历,最后一个按钮用来返回当前月份。
菜单:点击菜单按钮,可以从弹出的菜单列表中选择不同的选项。具体菜单包括:日期与星期的查看、记事本、节日信息的查看、身体健康等。
节日信息:在菜单列表中选择节日,即可进入节日界面,在节日界面里显示所有节日。
查询:在菜单列表中选择查询,进入查询界面,可以根据需要查询任何日期。
身体健康:在菜单列表中选择身体健康,进入身体健康界面,在身体健康界面里可以输入身高体重等数据,计算得到相关健康数据。
记事本:在菜单列表中选择记事本,进入记事本界面,可以添加日志,或查看已有的日志。
5详细设计与系统实现
5.1 主界面的设计与实现
本款软件设计简单操作方便,启动本软件后即可进入主界面,之后可以由菜单进入各项功能界面。
主界面的设计由两部分组成,一部分是Main.xml文件,另一部分是动态控制所需的代码。
Main.xml文件里面包含程序主界面的基本布局,有基本的控件,如显示当前日期的TextView控件和上一年、下一年、上一月、下一月、今天的Button控件。这些控件是通过.xml写入的,是动态的。
主界面日期显示的布局,是通过代码动态控制的。首先通过函数控制整个日期的布局,再通过addView循环6次添加到xml文件中去,实现一个月份中的各个日期对照,再控制月份中每一天的控件的绘制,其中还包括对每个月份的1号是周几,一个月份的最大天数等的控制。
用户在第一次进入主界面的时候initView(),set(),clickView()函数实现主界面的绘制和星期、日期等的显示。set()函数在第一次加载的时候被调用以获取系统当前的时间,并通过Tools.getCurTime(time,”yyyy年MM月dd日”);实现时间的格式化,再截取出年月日,并转换为int类型。
5.2 菜单界面的实现
将弹出对话框设置为菜单,通过menuDialog.setView()方法设置菜单的布局,Meunview通过标准的View.infalte初始化出来,同时重写onKey()方法,实现菜单的弹出。菜单里面是通过GridView布局,并通过为GridView设置适配器来显示菜单的各个选项,并为GridView添加OnItemClickListener()事件实现各个菜单的点击事件,对点击菜单选项做出相应的响应。
5.3 各功能实现
切换日期:用户点击下方切换按钮,先获取当前年份和月份,在当前年月的基础上将月份加一减一或将年份加一减一获取新的年月,再通过set(int year,int month)函数在界面上显示日历。
查询功能:通过spinner的onItemSelected事件实现呈现控件listView上面节日的显示,其中spinner的数据是在AndroidValue文件下array.xml文件中。
身体健康界面:输入用户或者他人的身高体重,通过相关公式计算得出数据并通过选择语句判断数据是否在正常范围内。
记事本界面:写入的日记内容存入数据库,日记列表写入note表,读取表内容进行查看。
6 系统测试和运行
测试过程由测试小组完成,主要从以下三个方面进行测试:
1)动软件,检查主界面各个控件大小是否合适,是否出现控件遮蔽等现象。
2)查各个控件的点击操作是否有正确的响应。
3)查各个控件的点击操作响应是否及时,是否有延迟或迟缓现象。
经过测试,该系统完成预期目标,符合用户对系统的需求。
参考文献:
[1] 李刚.疯狂Android讲义[M].北京:电子工业出版社,2013.
[2] 陈钊.Android程序主要组成部分概述[J]. 中国新技术新产品,2011(17): 42.
[3] 杨云君.Android 的设计与实现[M].北京:机械工业出版社,2013.
[4] 丰生强.Android 软件安全与逆向分析[M].北京:人民邮电出版社,2013.