教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 政务民生 >

手机电子书阅读器设计 - 图文(3)

来源:网络收集 时间:2026-08-22
导读: 计算机学院 《网络应用开发》课程设计报告 号page为integer类型,字体大小为integer类型的上次阅读记录表。 3.3.4 数据字典 数据字典是物理数据库的具体体现。 表4 BookRecord数据字典 字段名 阅读记录的ID 书的路

计算机学院 《网络应用开发》课程设计报告

号page为integer类型,字体大小为integer类型的上次阅读记录表。 3.3.4 数据字典

数据字典是物理数据库的具体体现。

表4 BookRecord数据字典

字段名 阅读记录的ID 书的路径 阅读记录数据 类型 整型 文本 字节数组 表5 BookMark数据字典

字段名 书签的ID 书签对应的阅读记录的ID 书签名 书页 类型 整型 整型 文本 整型 表6 LastTimePage数据字典

字段名 上次阅读记录的ID 书的路径 上次阅读到的页数 上次阅读时字体大小 类型 整型 文本 整型 整型 3.4 软件设计模型

建立系统数据模型的主要工具是实体——关联图,即

E-R图。

E-R图的图形符号约定如下表:

阅读记录ID书的路径阅读记录数据阅读记录 图4 存储阅读记录的E-R图

8

计算机学院 《网络应用开发》课程设计报告

图5 存储书签的E-R图

图 6 存储上次阅读记录的E-R图

3.5 软件维护设计

采用MVC设计模式,将UI层和业务逻辑层分离开来,采用针对接口编程的方式,降低了代码之间的耦合度,便于软件的升级和程序性能的优化。

4 系统功能模块的设计与实现

4.1 关键技术

4.1.1 android平台及java语言

以下图表展示了Android操作系统的主要组成部分:

9

计算机学院 《网络应用开发》课程设计报告

图7 Android系统架构图

本系统是以java为编程语言,从接口到功能,灵活多变。主要运用的是Activity之间的相互跳转,然后利用Intent实现多个程序同时运行的效果。运行中如果某个Activity的画面被另一个Activity所取代,则这个Activity停止。本系统通过把View类与XML(可扩展标记语言)将用户界面放置在视图窗口,然后注册事件来完成相应的功能。例如,当视图要处理用户的点击事件的时候,android就要向框架注册一个OnClickListener等。本系统中触发事件都是通过这种来实现的。 Java语言是一种简单易用,面向对象的,可移植的语言。它具有很多的优越性和特点,比如:平台无关性,安全性,面向对象,健壮性等等。本系统就是在android平台上使用java语言完成的系统。 4.1.2 中介软件

中介软件是android操作系统应用程序的桥梁,主要分为函数和虚拟机。Android的数据存储采用sqlite3数据库系统,用户可以用ContentProvider类获取数据。android中数据存储技术主要有:文件存储、preference、sqlite、ContentProvider和网络存储,在本软件中主要使用到了文件存储、sqlite和ContentProvider,文件存储是以流的形式读写文件,可以以文格的格式,也可以以二进制的形式,在java语言中要使用流,则写入文件的对象必须进行序列化,sqlite是嵌入式移动设备中常用的轻量级数据库,可看作计算机上使用的sql server、oracle数据库。本软件中,用户生词本中的数据都存在sqlite数据库中,而进行数据备份和恢复时则是用文件作为介质保存数据。 4.1.3 四大组件

Android的四大组件是支持android应用程序显示,跳转,服务和事件的重要工具,它们主要是:Activity(活动),Intent(意图),Service(服务),ContentProvider(内容提供器)。Activity是一个用户的界面基类,属于UI。一个Activity就是一个类,每个Activity类都需要继承Activity基类,并与其他控件结合使用。Intent实现Activity、service等之间的跳转和数据传输。Service是后台服务,为用户提供数据支持。ContentProvider负责数据的存储和读取。在android中,软件UI通常使用xml技术设计,而xml中控年的位置和状态则离不开布局的使用,android中常用的布局有5种,分别是:AbsoluteLayout、

10

计算机学院 《网络应用开发》课程设计报告

LinearLayout、RelativeLayout、FrameLayout、TableLayout,由于布局的使用,并且布局之间可以互相嵌套,使得android软件UI的设计变得非常灵活,即使是一些非常复杂的界面设计,只要合理的使用布局,也会使开发变得很容易。 4.1.4 sqlite3 数据库

Sqlite3是建立在android平台上的一个数据库,除了支持varchar(n)(可变字符),

char(n)(定长字符)等数据特性外,还支持空(NULL),整型(INTEGER),文本类型(TEXT)等数据类型。它的特点入下:轻量级(只需带上很小的动态库,就能享受它的全部功能)、独立性(使用不需要安装,在部署的时候能省去很多麻烦)、隔离性(数据库中所有的信息都包含在一个文件内,方便管理和维护)和安全性(可以同时读取数据,但同时只有一个能够写入数据)等特性。

4.1.5 Tomcat服务器

服务器的架设:

(1)在http://tomcat.apache.org/下载合适版本的Tomcat。 (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。 4.2 欢迎界面的实现

本模块主要完成阅读器欢迎界面的渐变效果显示,在进入程序界面时首先调用。该功能的实现主要是通过绘制黑色矩形,然后对其进行平面贴图,并通过不断的更改图片的透明值来实现的。 4.3 主控制类的实现

ReaderActivity类是主要控制程序运行的类,实现了各个界面的有序切换,各个按钮和对话框的监听事件,加载了程序中用到的相关资源,有效地控制了程序的运行。

11

计算机学院 《网络应用开发》课程设计报告

(1)onCreate方法是程序运行时,进入主界面前调用的方法,在此方法中对程序中用到的相关变量进行赋值,并为相关类创建对象,以方便调用。

(2)onKeyDownf方法是重写父类的onKeyDown方法,当按下不同的键时,此方法设计返回键(4号键)和Menu键(82号键),并且本设计中支持屏幕触控事件和键盘监听事件。

(3)onCreateOptionsMenu方法表示的是程序运行时,用户按下键盘上的Menu键后,显示的找书、书签、自动翻页和设置的按钮选项,当用户按下不同的键后,弹出相应的对话框。

(4)sendMessage方法表示各个界面相互跳转时调用的方法和不同线程之间传递消息的方法。

(5)isWhichTime方法用以判断是否为第一次打开程序,如果是,则程序中的变量值为默认值;若不是第一次打开,则获取上一次打开时设置的值。

(6)saveCurrentData和savePreference方法表示当程序退出、换书和第一次打开一本书时都要想数据库中BookRecord表中插入数据,第一次打开一本书时,向数据库中插入数据是因为,如果表中不存在当前书的信息,则无法存书签。

4.4工具类的设计

(1)Constant类存放了整个设计过程中,大部分类经常用到的常量值,如字体大小、字体颜色、屏幕的宽和高等。将这些常量值放在一起,不但方便了设计,而且方便管理。

(2)加载文本的工具类TextLoadUtil的设计主要是为文本的读入提供方法。 4.5 阅读界面的实现

ReaderView类主要负责自适应屏、绘制阅读器的主界面、实现键盘和屏幕的触控事件以及实现翻页功能。

(1)surfaceCreated方法主要负责成员变量的初始化工作。

(2)onDraw方法负责标题、广告条 …… 此处隐藏:1798字,全部文档内容请下载后查看。喜欢就下载吧 ……

手机电子书阅读器设计 - 图文(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/448611.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)