1、UNIVERSITY OF TECHNOLOGY毕业设计题 目 Android手机电子书阅读器设计与实现 学生姓名 宋攀飞 学 号 00101106 专业班级 通信工程 指引教师 学 院 通信学院 答辩日期 10月摘要在这个信息化时代,计算机越来越迅速,手机也越来越智能化,因此,一种好应用软件在很大限度上能提高一种手机销量和品牌。而在智能手机上安装一种拥有丰富功能支持电子书阅读器,更加能增长吸引力。本设计采用Android平台,依照对手机电子书阅读器客户需求分析和技术可行性分析,通过总体设计和详细设计编码测试等阶段,完毕了电子书阅读器软件设计。不但实现了电子书阅读器最基本阅读功能,并且还为顾客
2、提供了丰富功能支持,涉及找书,书签,自动翻页以及阅读界面设立操作。而本次设计最大特点则是通过屏幕触控实现了移动时翻页特效。通过不断测试与完善,电子书阅读器功能稳定,并且在真机上对其进行了测试与验证,基本上达到了顾客需求原则。核心词: Android;电子书阅读器;屏幕触控;翻页;书签; 目 录第1章 前言11.1 课题提出背景目及意义11.1.1 课题提出背景11.1.2 课题提出目11.2 设计思路及研究办法21.2.1 设计思路21.2.2 研究办法2第2章 需求分析32.1 软件基本功能规定32.2系统架构42.3 开发环境4第3章 软件设计63.1 总体软件构造设计63.2 接口设计7
3、3.2.1 外部接口73.2.2 内部接口83.3 数据库设计83.3.1 数据模式设计83.3.2 数据表格设计83.3.3 表详细设计93.3.4 数据字典103.4 软件设计模型103.5 软件维护设计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 设立字体大小功能
4、实现204.9 更换背景图片以及设立字体颜色功能实现214.10 音乐播放功能实现21第5章 系统测试225.1 欢迎界面225.2 顾客阅读界面23设计总结32代码34第1章 前言1.1 课题提出背景目及意义1.1.1 课题提出背景在这个信息化时代, IT业已经成为世界发展主流,咱们对信息技术依赖远远超过了对咱们自己依赖,计算机和手机已经成为咱们寻常生活中不可缺少获得信息渠道。正由于如此,各种各样软件层出不穷,咱们生活也由于各种各样软件变更有滋有味。不缺少娱乐性,也不缺少教诲意义,让咱们从这些软件中受益匪浅,使咱们看到了相比此前巨大进步。咱们依赖性也越来越大,越来越离不开这些给咱们提供寻常信
5、息工具。手机也已不再仅仅是简朴人与人通话工具,而是在很大限度上成为了咱们获取信息一种更好渠道。开发一款好手机软件是相称必要。此前咱们看看杂志,故事都要去图书馆借阅,并且时间有限,很不以便;而当前是在电脑上或者手机上看杂志,看故事,文档。以此看来,一种好手机阅读器软件开发是相称有必要。1.1.2 课题提出目本次设计目很明显,就是予以阅读者更大便利性,阅读者不用再处处拿着一本厚厚书籍,大大减少了读者承担,只需要下载一本txt格式电子书,放在sd卡里边,就是人们生活百科。1.2 设计思路及研究办法1.2.1 设计思路阅读器设计流程重要是按照软件设计普通流程:需求分析、概要设计、详细设计、测试与维护基
6、本流程来设计开发。一方面,从整体分析软件功能,将功能模块化;然后对每个模块进行调试。最后对各个模块进行系统集成。1.2.2 研究办法本系统在整体框架研究办法采用是问卷调查法和观测研究法。而在总体设计上采用是构造化办法,在局部底层开发上为便于交流采用迅速原型法。构造化系统设计办法是在构造化程序设计思想基本上发展起来,它基本涵义是一种系统由层次化程序模块构成,每一种模块只有一种入口和一种出口,每一种模块只归其上一级模块调用,并有模块连接准则和构造模块原则,并且用系统构造图来表达系统构造,尽量用最优方式将系统内各某些组织起来。第2章 需求分析2.1 软件基本功能规定在现行业务流程和数据分析基本上基本
7、上拟定了系统功能,设计也基本上达到了目的。依照软件设计环节,需求分析是软件设计成功基本,也是必不可少环节。同步,也对软件设计提出了详细规定。在做足了充分调查研究之后,基本可以拟定软件功能界面如下:(1)刚打开软件时欢迎动画界面。(2)在没有阅读记录状况下打开软件时进入软件阐明界面。(3)在主界面下单击“菜单”按钮后弹出欢迎主菜单界面。(4)找书选取界面,用来选取找书途径。(5)网络下载列表界面,用来列出服务器端可供下载文档。(6)下载完毕提示界面,顾客从服务器端完毕指定文档下载任务时显示界面。(7)已存在要下载文献提示界面,当顾客指定要下载文档在SD卡中已存在时显示界面。(8)SD卡文献列表界
8、面,列出SD卡中存在所有资料。(9)阅读界面,用来阅读文档主界面,是整个阅读器设计核心某些。(10)书签功能界面,用来选取与书签有关详细操作。(11)添加书签功能界面,将当前阅读到位置以书签名和书页号形式存至书签表,以便下次阅读。(12)选取书签功能界面,通过选取书签记录跳转至想要阅读位置。(13)删除书签功能界面,再不想要该条书签记录状况下实现删除操作。(14)自动翻页功能界面,实现不同步间间隔自动翻页效果。(15)设立界面,用来选取对阅读界面不同设立。(16)背景音乐界面,可在阅读同步欣赏音乐,更大限度提高。(17)背景图片界面,用来设立不同阅读界面风格,使阅读更为个性化。(18)字体颜色
9、界面,用来设立不同阅读字体颜色,提高顾客视觉体验。(19)字体大小界面,通过设立字体大小来满足实际应用中多重需求。基本阐明如下:本系统是一种电子书阅读器,重要包括一种主界面,用来实现阅读功能。在阅读界面时,点击menu,手机底部会浮现四个选项:找书、书签、自动翻页、设立。点击找书选项会有两种操作可供选取,分别是在SD卡中找书和通过网络下载;点击书签选项会有三种操作可供选取,分别为添加书签、选取书签和清空书签,其中长按选取书签列表中某条书签记录也可达到删除该条记录目;点击自动翻页选项会有四种操作可供选取,分别为每隔30秒、40秒、50秒自动翻页和停止自动翻页;点击设立选项会有四种操作可供选取,分
10、别为设立背景音乐、设立背景图片、设立字体颜色和设立字体大小,为此顾客可通过自己喜好来设立不同阅读界面风格,并且可以选取自己爱慕音乐作为背景音乐,在阅读同步欣赏。2.2系统架构本设计总体逻辑构造层次划分如图2.1所示。图2.1 功能构造图2.3 开发环境 数据库由于本设计和数据库密切有关,但是对数据库规定不高,因而可用Android系统自身自带Sqlite数据库。 Android SDK与Eclipse开发插件ADT 由于本设计是基于Android系统,而Android开发环境搭建是基于Eclipse,因而需要下载Android SDK与Eclipse开发插件ADT。 服务器 由于本设计需要用服
11、务器来为其提供下载服务,并且对服务器规定不高,因而在设计时用Tomcat作服务器。第3章 软件设计3.1 总体软件构造设计打开电子书阅读器之后,软件会先查看上次阅读最后记录,以此作为依照来进行判断从而跳转至相应阅读界面。然后顾客就可在阅读界面下通过选取menu来执行想要操作:找书、书签、自动翻页、设立。点击找书选项会有两种操作可供选取,分别是在SD卡中找书和通过网络下载;点击书签选项会有三种操作可供选取,分别为添加书签、选取书签和清空书签,其中长按选取书签列表中某条书签记录也可达到删除该条记录目;点击自动翻页选项会有四种操作可供选取,分别为每隔30秒、40秒、50秒自动翻页和停止自动翻页;点击
12、设立选项会有四种操作可供选取,分别为设立背景音乐、设立背景图片、设立字体颜色和设立字体大小,为此顾客可通过自己喜好来设立不同阅读界面风格,并且可以选取自己爱慕音乐作为背景音乐,在阅读同步欣赏。依照各个模块不同功能,对本设计进行了层次构造划分。在Eclipse下创立了一种名为Test工程,工程构造图如图3.1:图3.1 软件工程构造图该功能包是通过Android SDK自动生成,重要涉及如下内容:(1)src源代码目录:该目录存储Android应用程序所有源代码。该目录项有不同包,包中相应开发源代码,开发过程中重要精力都集中在开发src目录下内容。(2)gen文献夹目录:该目录存储了Eclips
13、eADT插件自动生成R.java文献。事实上R.java定义了一种R类,它包括了应用中顾客界面、图像、字符串等各种资源与之相相应资源编号(id)。这些资源编号都是系统自动生成,即有一资源对象,系统就为此在R类中生成相应资源编号,好比一本字典。(3)Res资源目录:该目录定义了drawable、layout及values 3个目录。a. drawable目录:该目录下有drawable-hdpi,drawable-ldpi,drawable-mdpi3个文献夹,分别用来存储不同辨别率图片资源,用于不同辨别率手机开发,可以通过Resource.getDrawable(id)获得该资源。b. lay
14、out目录:该目录下包括了所有使用XML格式界面描述文献。重要用于 表述应用程序顾客界面布局,也用于描述顾客界面和接口组件。c. values目录:该目录包括了使用XML格式参数描述文献,也可以在此添加某些额外资源,如字符串、颜色、样式和数组等。重要用于在代码中通过R类来调用它们,而不直接使用,这样可将代码和资源分开管理,便于维护。除了以上文献夹外,还用一种AndroidManifest.xml文献,该文献是系统控制文献,告诉系统如何解决创立所有顶层项目,特别是Activity,凡是需要用到组件都要在此注册。同步该文献也是所有Android应用程序都需要文献,其描述了程序包全局变量,涉及公开应
15、用程序组件和每个组件实现类,什么样数据可以操作,在什么地方可以运营等。在这个文献中最重要一种内容就是Intent过滤器,这些过滤器描述了何时、何种状况下让Activity启动。当一种Activity(或操作系统)想要执行一种动作,它将创立一种Intent对象。该对象包括了诸多描述符,描述了想做操作,像解决数据,数据类型,以及某些其她信息。Android将Intent对象中所有公开Intent过滤器比较,找到一种最能恰当解决祈求数据和动作Activity。3.2 接口设计3.2.1 外部接口在顾客界面某些,依照需求分析成果,顾客需要一种友善界面。在界面设计上,应做到简朴明了,易于操作,并且要注意
16、到界面布局,应突出显示重要以及出错信息。在界面设计某些,本系统按照Microsoft公司顾客界面设计原则,为顾客提供和谐、以便、直观、简洁操作环境。本系统采用了窗口继承方式,使窗口有统一界面风格。同步,对错误信息、提示信息进行原则化,尽量做到清晰明了。3.2.2 内部接口系统在功能模块设计上,以“高内聚、低耦合”为设计目的。内部接口方面,各模块之间采用函数调用、参数传递、返回值方式进行信息传递。详细参数构造将在下面数据构造设计内容中阐明。接口传递信息将是以数据构造封装数据、参数传递或返回值形式在各模块间传递。3.3 数据库设计3.3.1 数据模式设计一共设计了3张表,是:(1)阅读登记表(阅读
17、记录ID,书途径,阅读记录数据)(2)书签表(书签ID,书签相应阅读记录ID,书签名,书页)(3)上次阅读登记表(上次阅读记录ID,书途径,上次阅读到书页,上次阅读时字体)数据库表设计如下:图3.2 数据库构造图3.3.2 数据表格设计本数据库用是一种小型数据库sqlite3,在数据库中创立了三个表格。即BookRecord、BookMark和LastTimePage,分别用来存储阅读记录数据、书签数据和上次阅读记录数据。详细内容如表3-1、表3-2和表3-3所示:表3-1 阅读登记表字段名称数据类型字段大小与否主键阐明ridInteger8是阅读记录IDpath文本50否书途径data字节数
18、组不定否预读记录数据表3-2 书签表字段名称数据类型字段大小与否主键阐明midInteger8是书签IDridfkInteger8否书签相应阅读记录IDbmname文本50否书签名pageInteger8否书页表3-3 上次阅读登记表字段名称数据类型字段大小与否主键阐明lidInteger8是上次阅读记录IDpath文本50否书途径pageInteger8否上次阅读到页数fontsizeInteger8否上次阅读字体大小3.3.3 表详细设计表名:BookRecord表中字段名称:rid,path,data.阐明:用varchar类型存储path,blob类型存储相应途径下阅读过程,并规定ri
19、d为阅读登记表主键。表名:BookMark表中字段名称:mid,ridfk,bmname,page. 阐明:创立书签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整
20、型书途径文本阅读记录数据字节数组表3-5 BookMark数据字典字段名类型书签ID整型书签相应阅读记录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 软件维护设计采用MVC设计模式,将UI层和业务逻辑层分离开来,采用针对接口编程方式,减少了代码之间耦合度,便于软件升级和程序性能优
21、化。第4 章 系统功能模块设计与实现4.1 核心技术4.1.1 android平台及java语言如下图表展示了Android操作系统重要构成某些:图4.1 Android系统架构图 本系统是以java为编程语言,从接口到功能,灵活多变。重要运用是Activity之间互相跳转,然后运用Intent实现各种程序同步运营效果。运营中如果某个Activity画面被另一种Activity所取代,则这个Activity停止。本系统通过把View类与XML(可扩展标记语言)将顾客界面放置在视图窗口,然后注册事件来完毕相应功能。例如,当视图要解决顾客点击事件时候,android就要向框架注册一种OnClick
22、Listener等。本系统中触发事件都是通过这种来实现。 Java语言是一种简朴易用,面向对象,可移植语言。它具备诸多优越性和特点,例如:平台无关性,安全性,面向对象,健壮性等等。本系统就是在android平台上使用java语言完毕系统。4.1.2 中介软件 中介软件是android操作系统应用程序桥梁,重要分为函数和虚拟机。Android数据存储采用sqlite3数据库系统,顾客可以用ContentProvider类获取数据。android中数据存储技术重要有:文献存储、preference、sqlite、ContentProvider和网络存储,在本软件中重要使用到了文献存储、sqlite
23、和ContentProvider,文献存储是以流形式读写文献,可以以文格格式,也可以以二进制形式,在java语言中要使用流,则写入文献对象必要进行序列化,sqlite是嵌入式移动设备中惯用轻量级数据库,可看作计算机上使用sql server、oracle数据库。本软件中,顾客生词本中数据都存在sqlite数据库中,而进行数据备份和恢复时则是用文献作为介质保存数据。4.1.3 四大组件Android四大组件是支持android应用程序显示,跳转,服务和事件重要工具,它们重要是:Activity(活动),Intent(意图),Service(服务),ContentProvider(内容提供器)。A
24、ctivity是一种顾客界面基类,属于UI。一种Activity就是一种类,每个Activity类都需要继承Activity基类,并与其她控件结合使用。Intent实现Activity、service等之间跳转和数据传播。Service是后台服务,为顾客提供数据支持。ContentProvider负责数据存储和读取。在android中,软件UI普通使用xml技术设计,而xml中控年位置和状态则离不开布局使用,android中惯用布局有5种,分别是:AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,由于布局使用,
25、并且布局之间可以互相嵌套,使得android软件UI设计变得非常灵活,虽然是某些非常复杂界面设计,只要合理使用布局,也会使开发变得很容易。4.1.4 sqlite3 数据库Sqlite3是建立在android平台上一种数据库,除了支持varchar(n)(可变字符),char(n)(定长字符)等数据特性外,还支持空(NULL),整型(INTEGER),文本类型(TEXT)等数据类型。它特点入下:轻量级(只需带上很小动态库,就能享有它所有功能)、独立性(使用不需要安装,在布置时候能省去诸多麻烦)、隔离性(数据库中所有信息都包括在一种文献内,以便管理和维护)和安全性(可以同步读取数据,但同步只有一
26、种可以写入数据)等特性。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) 打开/pache-tomcat-5.0.8/bin目录下startup.bat。(8)打开浏览器,在地址栏输入http:/localhost:8088/,效果如图4.2所示: 图4.2 bin目录图
27、4.2 欢迎界面实现本模块重要完毕阅读器欢迎界面渐变效果显示,在进入程序界面时一方面调用。该功能实现重要是通过绘制黑色矩形,然后对其进行平面贴图,并通过不断更改图片透明值来实现。4.3 主控制类实现 ReaderActivity类是重要控制程序运营类,实现了各个界面有序切换,各个按钮和对话框监听事件,加载了程序中用到有关资源,有效地控制了程序运营。(1)onCreate办法是程序运营时,进入主界面前调用办法,在此办法中对程序中用到有关变量进行赋值,并为有关类创立对象,以以便调用。(2)onKeyDownf办法是重写父类onKeyDown办法,当按下不同键时,此办法设计返回键(4号键)和Menu
28、键(82号键),并且本设计中支持屏幕触控事件和键盘监听事件。(3)onCreateOptionsMenu办法表达是程序运营时,顾客按下键盘上Menu键后,显示找书、书签、自动翻页和设立按钮选项,当顾客按下不同键后,弹出相应对话框。(4)sendMessage办法表达各个界面互相跳转时调用办法和不同线程之间传递消息办法。(5)isWhichTime办法用以判断与否为第一次打开程序,如果是,则程序中变量值为默认值;若不是第一次打开,则获取上一次打开时设立值。(6) saveCurrentData和savePreference办法表达当程序退出、换书和第一次打开一本书时都要想数据库中BookReco
29、rd表中插入数据,第一次打开一本书时,向数据库中插入数据是由于,如果表中不存在当前书信息,则无法存书签。4.4工具类设计(1)Constant类存储了整个设计过程中,大某些类经惯用到常量值,如字体大小、字体颜色、屏幕宽和高等。将这些常量值放在一起,不但以便了设计,并且以便管理。(2)加载文本工具类TextLoadUtil设计重要是为文本读入提供办法。4.5 阅读界面实现ReaderView类重要负责自适应屏、绘制阅读器主界面、实现键盘和屏幕触控事件以及实现翻页功能。(1)surfaceCreated办法重要负责成员变量初始化工作。(2)onDraw办法负责标题、广告条、左右页面等图片绘制。其中
30、广告条绘制是动态,在广告条线程中值需要更改图片数据下标志值NUM。(3)onTouchEvent办法负责解决屏幕触控事件,屏幕触控事件为移动是翻页特效实现。(4)drawPage办法负责依照阅读记录对象ReadRecord绘制左右两页面。图4.3 从顾客进入软件到阅读界面时流程图图4.4 顾客在阅读界面时操作流程图当顾客进行阅读界面时候,一方面阅读控制模块会依照顾客之前阅读到位置来拟定载入电子书文本起始位置,然后会依照手机终端屏幕大小和字体大小来拟定该页应当显示多少文字。在获取文字长度之后,会读取相应长度字符并以此为基本生成左右相邻两页内容bitmap图片。顾客在阅读时候可以触摸屏幕不同位置进
31、行不同操作,左下角是往前翻页,右下角是往后翻页。4.6 找书功能实现找书功能分为在SDCARD中和在网络中找书。(1)在SDCARD中找书顾客可以将已有txt格式书放在SDCARD中,通过本阅读器在SDCARD中找书功能将书加载进阅读器进行阅读,详细环节如下:按下Menu键,在主界面中弹出选项中选取找书,弹出找书对话框,选中SDCARD,即可依照当前程径获得相应文献数组,并将数组中所有文献加入到文献列表中,然后再为文献列表添加监听,从而实当前点击某一文献时跳转至相应页面功能。(2)在网络中找书本阅读器不但提供了在本地找书功能,并且也支持在网络中找书。详细环节如下:当单击在网络中找书按钮时,调用
32、downTxt办法下载txt文档。图4.5 顾客找书时操作流程图4.7 书签功能实现(1) 添加书签功能实现 在本设计书签功能中有诸多美丽Dialog,这些Dialog是通过xml文献自己布局或者是通过Java代码自定义实现。其中styles.xml文献设立了Dialog背景图片和标题格式,是设立对话框属性文献。在完毕了输入书签对话框所需要继承类、布局文献和对话框属性文献之后,创立了书签输入对话框,并通过onPrepareDialog办法为自定义输入书签对话框中按钮添加了监听。(2) 选取书签功能实现 选取书签对话框不同于添加书签对话框,是用Java代码实现。详细实现环节如下:a. 在数据库中
33、取出所有书签名字和页数索引值,并分别放入两个数组tempname和temppage中,用来放入书签列表中显示。b. 用Java代码编写列表对话框,并且为ListView添加内容适配器,将在数据库中取出书签名称和其相应页数索引加入到ListView中。c. 当单击选取书签对话框中某一项时,得到当前页数,依照页数查找HashMap,找到相应BookMark类对象,从而懂得要跳转到页索引值。d. 当长时间按住选取书签对话框中某一项时,弹出“与否删除这条记录”对话框,如果单击“拟定”按钮,则会删除这条记录,单击“取消”按钮则不会删除记录。图4.6 书签功能操作流程图4.8 设立字体大小功能实现字体大小
34、对话框与选取书签对话框设计基本相似,也是通过Java代码为对话框中控件摆放形式设立布局。当单击小号、中号、大号字体后,如果当前字体与要变换字体相似,则不发生变化,否则将字体大小和中英文间距重新赋值,然后重新绘制当前界面。字体大小变化后书签和HashMap更新:(1) updataBookMarkAndHashMap办法负责字体大小变化后,更新书签和HashMap。(2) drawVirtualPage办法是字体大小变化后,书签和HashMap更新过程中,虚拟绘制主界面中每一页信息,并且为下一页Left_Start值赋值办法。4.9 更换背景图片以及设立字体颜色功能实现(1)更换背景图片功能实现
35、 a. 为了使对话框看起来更美观,为对话框中按钮设立背景图,同步背景图与要设立背景一致,为顾客提供参照。 b. 为按钮添加监听,使单击按钮后,可以实现更换阅读内容背景图片。 c. 设立要更换图片,并规定图片加载属性,用到了PicLoadUtil 这个工具类办法来实现图片自适应。 d. 重新绘制左右两侧背景图片上文字。(2)设立字体颜色功能实现 a. 为了使对话框看起来更美观,为对话框中按钮设立背景图,同步背景图与要设立字体颜色一致,为顾客提供参照。 b. 为按钮添加监听,使单击按钮后,可以实现重新设立阅读界面字体颜色。 c. 完毕字体颜色设立,返回到当前阅读界面继续阅读。4.10 音乐播放功能
36、实现(1)完毕自定义对话框设计。(2)将曲目导入ListView,为其添加监听,同步实现控制音乐播放与停止功能。(3)当音乐播放器为空或正在播放曲目二,则更改播放曲目一,在为其设立播放模式后,播放曲目,否则与否播放器,最后返回阅读主界面。第5章 系统测试5.1 欢迎界面打开本系统,一方面进入是欢迎界面,效果如图5.1和图5.2所示。图5.1 欢迎动画界面1图5.2 欢迎动画界面25.2 顾客阅读界面若为第一次打开软件,则在欢迎动画播放完后进入软件阐明界面,效果如图5.3所示。图5.3 软件阐明界面单击“菜单”按钮弹出主菜单,效果如图5.4所示。图5.4 阅读界面menu功能在主菜单中单击“找书
37、”按钮进入找书选取界面,效果如图5.5所示。图5.5 找书界面在找书选取界面,单击“网络”按钮,进入网络下载列表,效果如图5.6所示。图5.6 网络下载列表界面选取某一文本并单击,下载完毕后弹出提示信息,效果如图5.7所示。图5.7 下载完毕提示信息如果下载文献已存在,弹出提示界面,效果如图5.8所示。图5.8 存在要下载文献提示界面在找书选取界面,单击“SDCARD”按钮,进入SDCARD文献列表,效果如图5.9所示。图5.9 SDCARD文献列表界面在SDCARD文献列表中选中某文本后,单击进入阅读界面,效果如图5.10所示。图5.10 阅读界面在主菜单中单击“书签”按钮进入书签功能界面,
38、效果如图5.11所示。图5.11 书签功能界面在书签功能界面中单击“添加书签”按钮进入添加书签界面,效果如图5.12所示。图5.12 添加书签界面在书签功能界面中单击“选取书签”按钮进入选取书签界面,效果如图5.13所示。图5.13 选取书签界面在书签功能界面单击“清空书签”按钮进入清空书签界面,效果如图5.14所示。图5.14 删除书签界面在主菜单中单击“自动翻页”按钮进入自动翻页界面,效果如图5.15所示。图5.15 自动翻页界面在主菜单中单击“设立”按钮进入设立界面,效果如图5.16所示。图5.16 设立界面在设立界面中单击“背景音乐”按钮进入背景音乐界面,效果如图5.17所示。图5.1
39、7 背景音乐界面在设立界面中单击“背景图片”按钮进入背景图片界面,效果如图5.18所示。图5.18 背景图片界面在设立界面中单击“字体颜色”按钮进入字体颜色界面,效果如图5.19所示。图5.19 字体颜色界面在设立界面单击“字体大小”按钮进入字体大小界面,效果如图5.20所示。图5.20 字体大小界面 设计总结通过测试,本设计所有模块均可正常运营,并且达到了预期效果。与此同步本设计还存在着诸多局限性。特点:本设计以java为开发语言、sqlite3数据库作为后台支撑,较好解决了实际开发中遇到技术问题。本设计界面特点:界面和谐、易于操作维护,采用了大量人机交互式操作,能较好完毕阅读全过程,使浏览
40、者一进入就可以独立进行自己需要操作,一目了然。本设计实现了从SDCARD找书或从服务器端下载新书,添加书签,选取书签,清空所有书签,清空某一条书签,自动翻页,设立背景音乐、背景图片,更改字体颜色、字体大小,加载广告信息功能,可以让读者很顺利达到阅读目,且不会影响阅读进度,在很大限度上予以了极大以便。通过最后运营,可以达到省时目,以便,快捷,仿真翻页,记录阅读者最后一次阅读信息并在下次打开时自动初始化到上次阅读到界面是本设计最大特点。局限性:在本设计中只有将服务器端新书下载至SDCARD中才可供读者阅读,未能实当前线阅读功能,不能充分运用资源;SDCARD中存储文献名只能以英文形式存在,从而使得
41、在SDCARD找书界面中书名只能以英文形式浮现。 代码建立BookRecord表SQL语句:static SQLiteDatabase sld;public static void createOrOpenDatabase()try sld=SQLiteDatabase.openDatabase ( /data/data/com.bn.reader/recordself, null, SQLiteDatabase.OPEN_READWRITE|SQLiteDatabase.CREATE_IF_NECESSARY ); String sql1=create table if not exists
42、 BookRecord+(+rid INTEGER PRIMARY KEY AUTOINCREMENT,+path varchar(50),+data blob+); sld.execSQL(sql1); catch(Exception e) e.printStackTrace(); 建立BookMark表SQL语句: String sql2=create table if not exists BookMark+(+mid INTEGER PRIMARY KEY AUTOINCREMENT,+ridfk INTEGER,+bmname varchar(50),+page INTEGER+); sld.execSQL(sql2);建立LastTimePage表SQL语句: String sql3=create table if not exists LastTimePage+ (+ lid INTEGER PRIMARY KEY AUTOINCREMENT,+ path varchar(50),+ page INTEGER,+ fontsize INTEGER+ ); sld.execSQL(sql3);