1、毕业设计题 目 Android手机电子书阅读器设计和实现 Android手机电子书阅读器设计和实现The design and Implementation of the Android mobile phone e-book readerXxx毕业设计(论文)原创性申明和使用授权说明原创性申明本人郑重承诺:所呈交毕业设计(论文),是我个人在指导老师指导下进行研究工作及取得结果。尽我所知,除文中尤其加以标注和致谢地方外,不包含其它人或组织已经发表或公布过研究结果,也不包含我为取得 及其它教育机构学位或学历而使用过材料。对本研究提供过帮助和做出过贡献个人或集体,均已在文中作了明确说明并表示了谢意
2、。作 者 签 名: 日 期: 指导老师署名: 日期: 使用授权说明本人完全了解 大学相关搜集、保留、使用毕业设计(论文)要求,即:根据学校要求提交毕业设计(论文)印刷本和电子版本;学校有权保留毕业设计(论文)印刷本和电子版,并提供目录检索和阅览服务;学校能够采取影印、缩印、数字化或其它复制手段保留论文;在不以赢利为目标前提下,学校能够公布论文部分或全部内容。作者署名: 日 期: 学位论文原创性申明本人郑重申明:所呈交论文是本人在导师指导下独立进行研究所取得研究结果。除了文中尤其加以标注引用内容外,本论文不包含任何其它个人或集体已经发表或撰写结果作品。对本文研究做出关键贡献个人和集体,均已在文中
3、以明确方法标明。本人完全意识到本申明法律后果由本人负担。作者署名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校相关保留、使用学位论文要求,同意学校保留并向国家相关部门或机构送交论文复印件和电子版,许可论文被查阅和借阅。本人授权 大学能够将本学位论文全部或部分内容编入相关数据库进行检索,能够采取影印、缩印或扫描等复制手段保留和汇编本学位论文。涉密论文按学校要求处理。作者署名:日期: 年 月 日导师署名: 日期: 年 月 日注 意 事 项1.设计(论文)内容包含:1)封面(按教务处制订标准封面格式制作)2)原创性申明3)汉字摘要(300字左右)、关键词4)外文摘要、关键词
4、5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文件8)致谢9)附录(对论文支持必需时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包含图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包含:任务书、开题汇报、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请她人代写2)工程设计类题目标图纸,要求部分用尺规绘制,部分用计算机绘制,全部图纸应符合国家技术标准规范。图表整齐,布局合理,文字注释必需使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文5
5、0页以上双面打印4)图表应绘制于无格子页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订次序1)设计(论文)2)附件:根据任务书、开题汇报、外文译文、译文原文(复印件)次序装订摘要在这个信息化时代,计算机越来越精巧,手机也越来越智能化,所以,一个很好应用软件在很大程度上能提升一个手机品牌。而在智能手机上安装一个拥有丰富功效支持电子书阅读器,更是我们刻不容缓事情。本设计采取Android平台,依据对手机电子书阅读器用户需求分析和技术可行性分析,经过总体设计和具体设计编码测试等阶段,完成了电子书阅读器软件设计。不仅实现了电子书阅读器最基础阅读功效,而且还为用户提供了丰富功效支持,包含找书
6、,书签,自动翻页和阅读界面设置操作。而此次设计最大特点则是经过屏幕触控实现了移动时翻页特效。经过不停测试和完善,电子书阅读器功效稳定,而且在真机上对其进行了测试和验证,基础上达成了用户需求标准。关键词: Android;电子书阅读器;屏幕触控;翻页;AbstractIn the time of information technology, with the increasingly sophisticated of computers and more and more intelligent of mobile phones, a better application software c
7、an enhance a brand of the phone to large extent. It is our urgent for us that installed on the smart-phone has a rich functionality to support the e-book reader.Based on the needs analysis of customers and technical feasibility analysis, I use the Android platform to achieve the design of mobile pho
8、nes e-book reader. After completing the overall design and detailed design coding testing stage, I achieved the design of the e-book reader software. Not only can the soft achieve the basic function of E-book reader, but also offer many other functions for users, including books and bookmarks, flipp
9、ing pages automatically and designing the reader. The significant character of the design achieve the flipping page of mobile by touching screen Through continuous testing and improvement, E-book reader is stable. The testing and verification in real device has carried out to meet the customers requ
10、irements which have reached the standards of the customers requirements. Key words: Android; e-book Reader; Touch Screen; Flip目 录第1章 序言11.1 课题提出背景目标及意义11.1.1 课题提出背景11.1.2 课题提出目标11.1.3 课题提出意义11.2 设计思绪及研究方法21.2.1 设计思绪21.2.2 研究方法2第2章 需求分析32.1 软件基础功效要求32.2系统架构42.3 开发环境4第3章 软件设计63.1 总体软件结构设计63.2 接口设计73.2
11、.1 外部接口73.2.2 内部接口83.3 数据库设计83.3.1 数据模式设计83.3.2 数据表格设计83.3.3 表具体设计93.3.4 数据字典103.4 软件设计模型103.5 代码设计123.6 软件维护设计12第4 章 系统功效模块设计和实现134.1 关键技术134.1.1 android平台及java语言134.1.2 中介软件134.1.3 四大组件144.1.4 sqlite3 数据库144.1.5 Tomcat服务器144.2 欢迎界面实现154.3 主控制类实现154.4工具类设计164.5 阅读界面实现164.6 找书功效实现184.7 书签功效实现194.8 设
12、置字体大小功效实现204.9 更换背景图片和设置字体颜色功效实现214.10 音乐播放功效实现21第5章 系统测试225.1 欢迎界面225.2 用户阅读界面23毕业设计总结32参考文件33附录一 关键代码34附录二 毕业设计外文翻译(英文)36附录三 毕业设计外文翻译(汉字)44致谢51第1章 序言1.1 课题提出背景目标及意义1.1.1 课题提出背景在这个信息化时代, IT业已经成为世界发展主流,我们对信息技术依靠远远超出了对我们自己依靠,计算机和手机已经成为我们日常生活中不可缺乏取得信息渠道。正因为如此,多种多样软件层出不穷,我们生活也因为多种多样软件变更有滋有味。不缺乏娱乐性,也不缺乏
13、教育意义,让我们从这些软件中受益匪浅,使我们看到了相比以前巨大进步。同时,伴随科技发展,计算机越来越精巧,手机也越来越智能化,所以我们依靠性也越来越大,越来越离不开这些给我们提供日常信息工具。手机也已不再仅仅是简单人和人通话工具,而是在很大程度上成为了我们获取信息一个愈加好渠道。一个好软件,能够标志一个手机品牌地位。所以,开发一款好手机软件是相当必需。以前我们看看杂志,小说全部要去图书馆借阅,而且时间有限,很不方便;而现在是在电脑上或手机上看杂志,看小说,文档。以此看来,一个好手机阅读器软件开发是相当有必需。1.1.2 课题提出目标此次设计目标很显著,就是给阅读者更大便利性,阅读者不用再四处拿
14、着一本厚厚书籍,大大降低了读者负担,只需要下载一本txt格式电子书,放在sd卡里边,就是大家生活百科。当然,有些下载不来资料,还是需要翻阅书籍。1.1.3 课题提出意义计算机改变了人类工作方法,互联网发明着全新生活空间,我们接收信息方法也正在发生深刻质变。因为现在阅读器越来越普及,我们天天清晨读报习惯也在面对大资讯量新闻网站时逐步淡化,面对印刷出版物,我们仍视之为文化传承载体,但不可抵挡,是无纸化电子阅读时代悄然临近。我们现在信息化生活,充斥着信息传输,不过,越来越多人依靠于几乎朝夕相伴手机。即使,现在也出现了供大家阅读使用电子书,不过这些电子书功效极少很简单,仅仅是简简单单供大家一行一行阅览
15、文字信息,或是仅仅添加一个添加书签小功效,根本远远不能满足大家需求。于是,一个功效良好全方面电子书阅读器越来越成为广大用户追求。本软件是基于android系统智能手机开发一款电子书阅读器软件,它有一个阅读主界面,关键用来阅读文档。其优越性表现在实现了从SD卡读取文档或从服务器端下载文档,自动翻页,添加书签,选择书签,清空书签,设置背景音乐,设置背景图片,设置字体颜色,设置字体大小等功效。另外,给用户更清楚方便界面,也是本软件出发点之一。1.2 设计思绪及研究方法1.2.1 设计思绪阅读器设计步骤关键是根据软件设计通常步骤:需求分析、概要设计、具体设计、测试和维护基础步骤来设计开发。首先,从整体
16、分析软件功效,将功效模块化;然后对每个模块进行调试。最终对各个模块进行系统集成。经过多个月观察,发觉几乎全部人全部有手机,而且几乎有二分之一以上人用手机来阅读资料。可是这些阅读软件不尽人意,而且一个好阅读软件也还没有安装在智能手机上。本系统针对这一点进行了较仔细分析,在老版阅读软件基础之上进行改善,最终,对系统进行了实现和维护。1.2.2 研究方法本系统在整体框架研究方法采取是问卷调查法和观察研究法。而在总体设计上采取是结构化方法,在局部底层开发上为便于交流采取快速原型法。问卷调查法也称问卷法,它是调查者利用统一设计问卷向被选择调查对象了解情况或咨询意见调查方法。观察研究法指依据既定研究目标,
17、对现象或行为做有计划和有系统观察,并依观察统计对现象或行为做客观性描述和解释。结构化系统设计方法是在结构化程序设计思想基础上发展起来,它基础涵义是一个系统由层次化程序模块组成,每一个模块只有一个入口和一个出口,每一个模块只归其上一级模块调用,并有模块连接准则和结构模块标准,而且用系统结构图来表示系统结构,尽可能用最优方法将系统内各部分组织起来。第2章 需求分析2.1 软件基础功效要求经过以上问卷调查和观察研究方法,在现行业务步骤和数据分析基础上基础上确定了系统功效,设计也基础上达成了目标。依据软件设计步骤,需求分析是软件设计成功基础,也是必不可少步骤。同时,也对软件设计提出了具体要求。在做足了
18、充足调查研究以后,基础能够确定软件功效界面以下:(1)刚打开软件时欢迎动画界面。(2)在没有阅读统计情况下打开软件时进入软件说明界面。(3)在主界面下单击“菜单”按钮后弹出欢迎主菜单界面。(4)找书选择界面,用来选择找书路径。(5)网络下载列表界面,用来列出服务器端可供下载文档。(6)下载完成提醒界面,用户从服务器端完成指定文档下载任务时显示界面。(7)已存在要下载文件提醒界面,当用户指定要下载文档在SD卡中已存在时显示界面。(8)SD卡文件列表界面,列出SD卡中存在全部资料。(9)阅读界面,用来阅读文档主界面,是整个阅读器设计关键部分。(10)书签功效界面,用来选择和书签相关具体操作。(11
19、)添加书签功效界面,将目前阅读到位置以书署名和书页号形式存至书签表,方便下次阅读。(12)选择书签功效界面,经过选择书签统计跳转至想要阅读位置。(13)删除书签功效界面,再不想要该条书签统计情况下实现删除操作。(14)自动翻页功效界面,实现不一样时间间隔自动翻页效果。(15)设置界面,用来选择对阅读界面不一样设置。(16)背景音乐界面,可在阅读同时欣赏音乐,更大程度提升。(17)背景图片界面,用来设置不一样阅读界面风格,使阅读更为个性化。(18)字体颜色界面,用来设置不一样阅读字体颜色,提升用户视觉体验。(19)字体大小界面,经过设置字体大小来满足实际应用中多重需求。基础说明以下:本系统是一个
20、电子书阅读器,关键包含一个主界面,用来实现阅读功效。在阅读界面时,点击menu,手机底部会出现四个选项:找书、书签、自动翻页、设置。点击找书选项会有两种操作可供选择,分别是在SD卡中找书和经过网络下载;点击书签选项会有三种操作可供选择,分别为添加书签、选择书签和清空书签,其中长按选择书签列表中某条书签统计也可达成删除该条统计目标;点击自动翻页选项会有四种操作可供选择,分别为每隔30秒、40秒、50秒自动翻页和停止自动翻页;点击设置选项会有四种操作可供选择,分别为设置背景音乐、设置背景图片、设置字体颜色和设置字体大小,为此用户可经过自己喜好来设置不一样阅读界面风格,而且能够选择自己喜爱音乐作为背
21、景音乐,在阅读同时欣赏。2.2系统架构本设计总体逻辑结构层次划分图2.1所表示。图2.1 功效结构图2.3 开发环境 数据库因为本设计和数据库亲密相关,不过对数据库要求不高,所以可用Android系统本身自带Sqlite数据库。 Android SDK和Eclipse开发插件ADT 因为本设计是基于Android系统,而Android开发环境搭建是基于Eclipse,所以需要下载Android SDK和Eclipse开发插件ADT。 服务器 因为本设计需要用服务器来为其提供下载服务,而且对服务器要求不高,所以在设计时用Tomcat作服务器。第3章 软件设计3.1 总体软件结构设计打开电子书阅读
22、器以后,软件会先查看上次阅读最终统计,以此作为依据来进行判定从而跳转至对应阅读界面。然后用户就可在阅读界面下经过选择menu来实施想要操作:找书、书签、自动翻页、设置。点击找书选项会有两种操作可供选择,分别是在SD卡中找书和经过网络下载;点击书签选项会有三种操作可供选择,分别为添加书签、选择书签和清空书签,其中长按选择书签列表中某条书签统计也可达成删除该条统计目标;点击自动翻页选项会有四种操作可供选择,分别为每隔30秒、40秒、50秒自动翻页和停止自动翻页;点击设置选项会有四种操作可供选择,分别为设置背景音乐、设置背景图片、设置字体颜色和设置字体大小,为此用户可经过自己喜好来设置不一样阅读界面
23、风格,而且能够选择自己喜爱音乐作为背景音乐,在阅读同时欣赏。依据各个模块不一样功效,对本设计进行了层次结构划分。在Eclipse下创建了一个名为Test工程,工程结构图图3.1:图3.1 软件工程结构图该功效包是经过Android SDK自动生成,关键包含以下内容:(1)src源代码目录:该目录存放Android应用程序全部源代码。该目录项有不一样包,包中对应开起源代码,开发过程中关键精力全部集中在开发src目录下内容。(2)gen文件夹目录:该目录存放了EclipseADT插件自动生成R.java文件。实际上R.java定义了一个R类,它包含了应用中用户界面、图像、字符串等多种资源和之相对应
24、资源编号(id)。这些资源编号全部是系统自动生成,即有一资源对象,系统就为此在R类中生成对应资源编号,好比一本字典。(3)Res资源目录:该目录定义了drawable、layout及values 3个目录。a. drawable目录:该目录下有drawable-hdpi,drawable-ldpi,drawable-mdpi3个文件夹,分别用来存放不一样分辨率图片资源,用于不一样分辨率手机开发,能够经过Resource.getDrawable(id)取得该资源。b. layout目录:该目录下包含了全部使用XML格式界面描述文件。关键用于 表述应用程序用户界面布局,也用于描述用户界面和接口组件
25、。c. values目录:该目录包含了使用XML格式参数描述文件,也能够在此添加部分额外资源,如字符串、颜色、样式和数组等。关键用于在代码中经过R类来调用它们,而不直接使用,这么可将代码和资源分开管理,便于维护。除了以上文件夹外,还用一个AndroidManifest.xml文件,该文件是系统控制文件,告诉系统怎样处理创建全部顶层项目,尤其是Activity,通常需要用到组件全部要在此注册。同时该文件也是全部Android应用程序全部需要文件,其描述了程序包全局变量,包含公开应用程序组件和每个组件实现类,什么样数据能够操作,在什么地方能够运行等。在这个文件中最关键一个内容就是Intent过滤器
26、,这些过滤器描述了何时、何种情况下让Activity开启。当一个Activity(或操作系统)想要实施一个动作,它将创建一个Intent对象。该对象包含了很多描述符,描述了想做操作,像处理数据,数据类型,和部分其它信息。Android将Intent对象中全部公开Intent过滤器比较,找到一个最能合适处理请求数据和动作Activity。3.2 接口设计3.2.1 外部接口在用户界面部分,依据需求分析结果,用户需要一个友善界面。在界面设计上,应做到简单明了,易于操作,而且要注意到界面布局,应突出显示关键和犯错信息。在界面设计部分,本系统根据Microsoft企业用户界面设计标准,为用户提供友好、
27、方便、直观、简练操作环境。本系统采取了窗口继承方法,使窗口有统一界面风格。同时,对错误信息、提醒信息进行标准化,尽可能做到清楚明了。3.2.2 内部接口系统在功效模块设计上,以“高内聚、低耦合”为设计目标。内部接口方面,各模块之间采取函数调用、参数传输、返回值方法进行信息传输。具体参数结构将在下面数据结构设计内容中说明。接口传输信息将是以数据结构封装数据、参数传输或返回值形式在各模块间传输。3.3 数据库设计3.3.1 数据模式设计一共设计了3张表,是:(1)阅读统计表(阅读统计ID,书路径,阅读统计数据)(2)书签表(书签ID,书签对应阅读统计ID,书署名,书页)(3)上次阅读统计表(上次阅
28、读统计ID,书路径,上次阅读到书页,上次阅读时字体)数据库表设计以下:图3.2 数据库结构图3.3.2 数据表格设计本数据库用是一个小型数据库sqlite3,在数据库中创建了三个表格。即BookRecord、BookMark和LastTimePage,分别用来存放阅读统计数据、书签数据和上次阅读统计数据。具体内容如表3-1、表3-2和表3-3所表示:表3-1 阅读统计表字段名称数据类型字段大小是否主键说明ridInteger8是阅读统计IDpath文本50否书路径data字节数组不定否预读统计数据表3-2 书签表字段名称数据类型字段大小是否主键说明midInteger8是书签IDridfkIn
29、teger8否书签对应阅读统计IDbmname文本50否书署名pageInteger8否书页表3-3 上次阅读统计表字段名称数据类型字段大小是否主键说明lidInteger8是上次阅读统计IDpath文本50否书路径pageInteger8否上次阅读到页数fontsizeInteger8否上次阅读字体大小3.3.3 表具体设计表名:BookRecord表中字段名称:rid, path, data.说明:用varchar类型存放path,blob类型存放对应路径下阅读过程,并要求rid为阅读统计表主键。表名:BookMark表中字段名称:mid, ridfk, bmname, page. 说明:
30、创建书签mid为integer类型主键,定义书署名字bmname为varchar类型,书页号page为integer类型书签表。表名:LastTimePage表中字段名称:lid, path, page, fontsize.说明:创建书签lid为integer型主键,定义路径path为varchar类型,书页号page为integer类型,字体大小为integer类型上次阅读统计表。3.3.4 数据字典数据字典是物理数据库具体表现。表3-4 BookRecord数据字典字段名类型阅读统计ID整型书路径文本阅读统计数据字节数组表3-5 BookMark数据字典字段名类型书签ID整型书签对应阅读统
31、计ID整型书署名文本书页整型表3-6 LastTimePage数据字典字段名类型上次阅读统计ID整型书路径文本上次阅读到页数整型上次阅读时字体大小整型3.4 软件设计模型 建立系统数据模型关键工具是实体关联图,即E-R图。E-R图图形符号约定以下表:表3-7 E-R图图形符号图3.3 存放阅读统计E-R图图3.4 存放书签E-R图图 3.5 存放上次阅读统计E-R图3.5 代码设计代码是按使用目标,表示识别、分类、排序数据数字、文字或符号。识别是将文件中存放数据区分开,或将文件中数据按组区分开,识别关键用数据更新和查找。分类是依据数据编码中定义对数据分类,用于检索数据或统计分析。排序是依据编码
32、规则,按代码中要求次序排序,用于输出和生成报表。3.6 软件维护设计采取MVC设计模式,将UI层和业务逻辑层分离开来,采取针对接口编程方法,降低了代码之间耦合度,便于软件升级和程序性能优化。第4 章 系统功效模块设计和实现4.1 关键技术4.1.1 android平台及java语言以下图表展示了Android操作系统关键组成部分:图4.1 Android系统架构图 本系统是以java为编程语言,从接口到功效,灵活多变。关键利用是Activity之间相互跳转,然后利用Intent实现多个程序同时运行效果。运行中假如某个Activity画面被另一个Activity所替换,则这个Activity停止
33、。本系统经过把View类和XML(可扩展标识语言)将用户界面放置在视图窗口,然后注册事件来完成对应功效。比如,当视图要处理用户点击事件时候,android就要向框架注册一个OnClickListener等。本系统中触发事件全部是经过这种来实现。 Java语言是一个简单易用,面向对象,可移植语言。它含有很多优越性和特点,比如:平台无关性,安全性,面向对象,健壮性等等。本系统就是在android平台上使用java语言完成系统。4.1.2 中介软件 中介软件是android操作系统应用程序桥梁,关键分为函数和虚拟机。Android数据存放采取sqlite3数据库系统,用户能够用ContentProv
34、ider类获取数据。android中数据存放技术关键有:文件存放、preference、sqlite、ContentProvider和网络存放,在本软件中关键使用到了文件存放、sqlite和ContentProvider,文件存放是以流形式读写文件,能够以文格格式,也能够以二进制形式,在java语言中要使用流,则写入文件对象必需进行序列化,sqlite是嵌入式移动设备中常见轻量级数据库,可看作计算机上使用sql server、oracle数据库。本软件中,用户生词本中数据全部存在sqlite数据库中,而进行数据备份和恢复时则是用文件作为介质保留数据。4.1.3 四大组件Android四大组件是
35、支持android应用程序显示,跳转,服务和事件关键工具,它们关键是:Activity(活动),Intent(意图),Service(服务),ContentProvider(内容提供器)。Activity是一个用户界面基类,属于UI。一个Activity就是一个类,每个Activity类全部需要继承Activity基类,并和其它控件结合使用。Intent实现Activity、service等之间跳转和数据传输。Service是后台服务,为用户提供数据支持。ContentProvider负责数据存放和读取。在android中,软件UI通常使用xml技术设计,而xml中控年位置和状态则离不开布局使
36、用,android中常见布局有5种,分别是:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,因为布局使用,而且布局之间能够相互嵌套,使得android软件UI设计变得很灵活,即使是部分很复杂界面设计,只要合理使用布局,也会使开发变得很轻易。4.1.4 sqlite3 数据库Sqlite3是建立在android平台上一个数据库,除了支持varchar(n)(可变字符),char(n)(定长字符)等数据特征外,还支持空(NULL),整型(INTEGER),文本类型(TEXT)等数据类型。它特点入下:轻量级(只需带
37、上很小动态库,就能享受它全部功效)、独立性(使用不需要安装,在布署时候能省去很多麻烦)、隔离性(数据库中全部信息全部包含在一个文件内,方便管理和维护)和安全性(能够同时读取数据,但同时只有一个能够写入数据)等特征。4.1.5 Tomcat服务器服务器架设:(1) 在。(2) 在/apache-tomcat-5.0.28/webapps目录下新建文件夹txt。(3) 在txt文件夹下创建文本文件txt_list.txt。(4) 在txt_list.txt下写入内容。(5) 依据txt_list.txt内容,创建文本。(6) 打开/pache-tomcat-5.0.8/bin目录。(7) 打开/p
38、ache-tomcat-5.0.8/bin目录下startup.bat。(8)打开浏览器,在地址栏输入http:/localhost:8088/,效果图4.2所表示: 图4.2 bin目录图4.2 欢迎界面实现本模块关键完成阅读器欢迎界面渐变效果显示,在进入程序界面时首先调用。该功效实现关键是经过绘制黑色矩形,然后对其进行平面贴图,并经过不停更改图片透明值来实现。4.3 主控制类实现 ReaderActivity类是关键控制程序运行类,实现了各个界面有序切换,各个按钮和对话框监听事件,加载了程序中用到相关资源,有效地控制了程序运行。(1)onCreate方法是程序运行时,进入主界面前调用方法,
39、在此方法中对程序中用到相关变量进行赋值,并为相关类创建对象,以方便调用。(2)onKeyDownf方法是重写父类onKeyDown方法,当按下不一样键时,此方法设计返回键(4号键)和Menu键(82号键),而且本设计中支持屏幕触控事件和键盘监听事件。(3)onCreateOptionsMenu方法表示是程序运行时,用户按下键盘上Menu键后,显示找书、书签、自动翻页和设置按钮选项,当用户按下不一样键后,弹出对应对话框。(4)sendMessage方法表示各个界面相互跳转时调用方法和不一样线程之间传输消息方法。(5)isWhichTime方法用以判定是否为第一次打开程序,假如是,则程序中变量值为
40、默认值;若不是第一次打开,则获取上一次打开时设置值。(6) saveCurrentData和savePreference方法表示当程序退出、换书和第一次打开一本书时全部要想数据库中BookRecord表中插入数据,第一次打开一本书时,向数据库中插入数据是因为,假如表中不存在目前书信息,则无法存书签。4.4工具类设计(1)Constant类存放了整个设计过程中,大部分类常常见到常量值,如字体大小、字体颜色、屏幕宽和高等。将这些常量值放在一起,不仅方便了设计,而且方便管理。(2)加载文本工具类TextLoadUtil设计关键是为文本读入提供方法。4.5 阅读界面实现ReaderView类关键负责自
41、适应屏、绘制阅读器主界面、实现键盘和屏幕触控事件和实现翻页功效。(1)surfaceCreated方法关键负责组员变量初始化工作。(2)onDraw方法负责标题、广告条、左右页面等图片绘制。其中广告条绘制是动态,在广告条线程中值需要更改图片数据下标志值NUM。(3)onTouchEvent方法负责处理屏幕触控事件,屏幕触控事件为移动是翻页特效实现。(4)drawPage方法负责依据阅读统计对象ReadRecord绘制左右两页面。图4.3 从用户进入软件到阅读界面时步骤图图4.4 用户在阅读界面时操作步骤图当用户进行阅读界面时候,首先阅读控制模块会依据用户之前阅读到位置来确定载入电子书文本起始位
42、置,然后会依据手机终端屏幕大小和字体大小来确定该页应该显示多少文字。在获取文字长度以后,会读取对应长度字符并以此为基础生成左右相邻两页内容bitmap图片。用户在阅读时候能够触摸屏幕不一样位置进行不一样操作,左下角是往前翻页,右下角是往后翻页。4.6 找书功效实现找书功效分为在SDCARD中和在网络中找书。(1)在SDCARD中找书用户能够将已经有txt格式书放在SDCARD中,经过本阅读器在SDCARD中找书功效将书加载进阅读器进行阅读,具体步骤以下:按下Menu键,在主界面中弹出选项中选择找书,弹出找书对话框,选中SDCARD,即可依据目前路径取得对应文件数组,并将数组中全部文件加入到文件
43、列表中,然后再为文件列表添加监听,从而实现在点击某一文件时跳转至对应页面功效。(2)在网络中找书本阅读器不仅提供了在当地找书功效,而且也支持在网络中找书。具体步骤以下:当单击在网络中找书按钮时,调用downTxt方法下载txt文档。图4.5 用户找书时操作步骤图4.7 书签功效实现(1) 添加书签功效实现 在本设计书签功效中有很多漂亮Dialog,这些Dialog是经过xml文件自己布局或是经过Java代码自定义实现。其中styles.xml文件设置了Dialog背景图片和标题格式,是设置对话框属性文件。在完成了输入书签对话框所需要继承类、布局文件和对话框属性文件以后,创建了书签输入对话框,并
44、经过onPrepareDialog方法为自定义输入书签对话框中按钮添加了监听。(2) 选择书签功效实现 选择书签对话框不一样于添加书签对话框,是用Java代码实现。具体实现步骤以下:a. 在数据库中取出全部书署名字和页数索引值,并分别放入两个数组tempname和temppage中,用来放入书签列表中显示。b. 用Java代码编写列表对话框,而且为ListView添加内容适配器,将在数据库中取出书署名称和其对应页数索引加入到ListView中。c. 当单击选择书签对话框中某一项时,得到目前页数,依据页数查找HashMap,找到对应BookMark类对象,从而知道要跳转到页索引值。d. 当长时间
45、按住选择书签对话框中某一项时,弹出“是否删除这条统计”对话框,假如单击“确定”按钮,则会删除这条统计,单击“取消”按钮则不会删除统计。图4.6 书签功效操作步骤图4.8 设置字体大小功效实现字体大小对话框和选择书签对话框设计基础相同,也是经过Java代码为对话框中控件摆放形式设置布局。当单击小号、中号、大号字体后,假如目前字体和要变换字体相同,则不发生改变,不然将字体大小和中英文间距重新赋值,然后重新绘制目前界面。字体大小改变后书签和HashMap更新:(1) updataBookMarkAndHashMap方法负责字体大小改变后,更新书签和HashMap。(2) drawVirtualPage方法是字体大小改变后,书签和HashMap更新过程中,虚拟绘制主界面中每一页信息,而且为下一页Left_Start值赋值方法。4.9 更换背景图片和设置字体颜色功效实现(1)更换背景图片功效实现 a. 为了使对话框看起来更美观,为对话框中按钮设置背景图,同时背景图和要设置背景一致,为用户提供参考。 b. 为按钮添加监听,使单击按钮后,能够
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100