手机电子书阅读器的设计与实现毕业论文Word文档格式.docx

上传人:b****5 文档编号:19752896 上传时间:2023-01-09 格式:DOCX 页数:59 大小:4.83MB
下载 相关 举报
手机电子书阅读器的设计与实现毕业论文Word文档格式.docx_第1页
第1页 / 共59页
手机电子书阅读器的设计与实现毕业论文Word文档格式.docx_第2页
第2页 / 共59页
手机电子书阅读器的设计与实现毕业论文Word文档格式.docx_第3页
第3页 / 共59页
手机电子书阅读器的设计与实现毕业论文Word文档格式.docx_第4页
第4页 / 共59页
手机电子书阅读器的设计与实现毕业论文Word文档格式.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

手机电子书阅读器的设计与实现毕业论文Word文档格式.docx

《手机电子书阅读器的设计与实现毕业论文Word文档格式.docx》由会员分享,可在线阅读,更多相关《手机电子书阅读器的设计与实现毕业论文Word文档格式.docx(59页珍藏版)》请在冰豆网上搜索。

手机电子书阅读器的设计与实现毕业论文Word文档格式.docx

菱形框,表示联系类型。

椭圆形框,表示实体类型和联系类型的属性。

对于关键码的属性,在属性名下划一横线。

直线,联系类型与其涉及的试题类型之间以直线连接。

图2ER图

数据库使用了2个实体,分别为书籍、书签。

书籍与书签的对应关系为1:

n。

在数据库的设计方面,为了实现数据库的完整性与一致性,我们使用了触发器,在数据库的选用上,选择了自给自足的、无服务器的、零配置的、事务性的SQL数据库引擎的SQLite数据库,数据库名称为eBook.db,共2个实体表,分别为书籍表、书签表。

与书籍(books)实体类的属性信息对应的字段信息表如表1所示:

字段名

类型

说明

book_id

INTEGER

书籍编号

book_name

TEXT

书籍名称

book_path

书籍路径

file_size

书籍大小

last_read

DATETIME

阅读时间

book_shelf

所属书籍

read_percentage

DOUBLE

已读比例

pos

阅读位置

表1书籍表

书籍表(books)创建的SQL语句:

CREATETABLEbooks(

book_idINTEGERPRIMARYKEY,

book_nameTEXTNOTNULL,

book_pathTEXTNOTNULLUNIQUE,

file_sizeTEXT,last_readDATETIMEDEFAULT(datetime(CURRENT_TIMESTAMP,'

localtime'

)),book_shelfINTEGER,

read_percentageDOUBLEDEFAULT0,

posINTEGERDEFAULT0

);

与书签(bookMarks)实体类的属性信息对应的字段信息表如表2所示:

id

书签编号

percent

位置比例

content

书签容

书签位置

time

添加时间

表2书签表

书签表(bookMarks)创建的SQL语句:

CREATETABLEbookMarks(

idINTEGERPRIMARYKEYAUTOINCREMENT,"

book_idINTEGER,"

percentDOUBLE,

contentTEXT,

posINTEGER,

timeDATETIMEDEFAULT(

datetime(CURRENT_TIMESTAMP,'

触发器(fk_Delete)创建SQL语句:

CREATETRIGGERfk_DeleteBEFOREDELETEONbooks

FOREACHROW

BEGIN

DELETE

FROMbookMarks

WHEREbook_id=old.book_id;

END

2.3功能框架设计

图3功能模块图

手机电子书阅读器软件主要分为8个功能大模块如图3所示,分别是欢迎模块、软件主界面、书籍管理、阅读管理、文件浏览、系统管理、使用帮助、关于。

其中书籍模块中还要文件扫描模块,阅读管理中有章节管理、书签管理、搜索管理。

系统设置中有密码设置。

其各个模块的详细设计如下:

1.软件欢迎模块。

该模块主要实现的功能是,通过Handler来实现一个2秒的缓冲界面,然后通过SharedPreferences读取配置文件,判断是否有密码。

如果有密码则跳转至密码验证界面;

如果没有密码则判断是否为第一次使用此软件,如果是第一次使用则跳转至引导页面。

2.软件主界面模块。

该模块是一个通过TabHost标签组件来实现的一个分类管理功能。

本界面的标签在屏幕的最下方,分别是:

文件管理、我的书架、我的设置。

点击不同的标签则显示不同的界面,默认显示标签为“我的书架”,打开选项中会出现对应的视图。

实现了将本程序关联成手机默认打开程序中,即从外部打开文本文件时选择查看方式中会出现本软件图标供用户选择以本软件打开。

3.书籍管理。

该模块是以书架的模式来展现书籍,并可以对书籍进行一些操作,本模块共有3个书架分别为:

“最近阅读”、“历史阅读”、“收藏阅读”,默认显示是“最近阅读”书架。

本模块有导航按钮和书籍选择按钮。

当弹出导航栏时,则把书籍从每行显示三本书籍调整到每行显示两本书籍。

导航栏中与三大项:

分类排序、添加书籍、清空书籍。

每项里面又有子菜单。

当点击导航里的按钮时会显示子功能导航,当再点击其它按钮时,会收起前面的子功能导航,展开当前的子功能。

当单击书籍选择按钮时会弹出书籍选择窗口,选择里面的书架则进入相应的书架界面,同时还可以通过左右滑动来切换书架界面。

当单击书籍时会打开相应的书籍阅读界面,长按某书籍时会弹出书籍操作窗口。

4.文件浏览。

该模块使用ListView组件显示文件目录,不同的文件类型显示不同的图标。

最上面标题栏有导航按钮,当点击导航按钮时会从左侧弹出导航栏,导航栏中有标记文件按钮、分类排序按钮和添加到书架按钮,点击标记文件按钮或长按某文件或目录时则切换到多选模式,其中有多选按钮、反选按钮和取消按钮;

点击分类排序则弹出子菜单,其中有按名称排序、按大小排序、按时间排序和按类型排序;

点击添加到书架时如果为选择文件则自动进入多选模式让用户进行文件选择,如果用户未选择则提示“请选择书籍”,进行选择是用户可选择文件或目录,系统会自动进行扫描,把符合要求的文件添加到“最近书架”中,并弹出提示信息,其中有失败个数、已存在个数和成功个数。

在多选模式下点击返回按钮或点击标记文件会取消多选模式。

非多选模式下,用户点击文件时本软件会根据文件扩展名来判断打开文件方式,如果是文本文件则直接用本软件打开,并把其添加到“最近书架”中,其它格式则调用对应的软件打开,如果是未识别的类型则提示“没有打开此文件的应用”。

5.阅读管理。

该模块通过自定义一个View视图来显示书页,通过自定义类来读取文本容并通过onDraw()方法把文件名、文本容、电量信息、时间信息和已读百分比进行绘制成图片,并通过View来把绘制的图片显示出来。

第一次进入阅读页面是会有显示引导页面来指导用户如何读本页面进行操作。

本页面操作包括点击事件和滑动事件,点击左侧屏幕进行向上翻页,点击右侧屏幕进行向下翻页,点击屏幕中间画出菜单选项。

此菜单是使用PopupWindow组件实现,菜单分上下两部分,上面的菜单有返回按钮、屏幕亮度调节按钮和添加书签按钮;

下面的菜单有主题选择按钮、搜索按钮、书签按钮、目录按钮、字体大小调节按钮、翻页方式按钮、夜间模式切换按钮和退出软件按钮。

6.系统设置。

系统设置模块包括阅读设置和系统设置。

阅读设置中有连续阅读模式、阅读完成时自动归类、阅读休息提醒和阅读空闲退出。

连续阅读模式:

下次启动直接进入上次阅读的界面进行继续阅读;

阅读完成时自动归类:

当书籍阅读到最后一页后对此书籍自动移至“历史阅读”书架中;

阅读休息提醒:

设置一个时间,当用户在阅读页面停留至这个时间时会弹出个提示框来提醒用户进行休息;

阅读空闲退出:

设置一个时间,当用户停留在阅读界面并且为对其未进行任何操作至这个时间时,系统会自动关闭本软件。

系统设置中有显示隐藏文件、使用软件密码、退出确认、使用帮助和关于。

显示隐藏文件:

当用户选择此设置后会在下次启动本软件时在文件浏览中显示隐藏文件;

使用软件密码:

用户可以对此软件进行密码设置;

退出时确认:

当选择此设置后,退出软件时会显示一个确认框进行退出确认,未选择此设置时则会直接退出本软件;

使用帮助:

显示本软件的帮助信息;

关于:

显示关于本软件的信息。

本软件的设置信息全部使用SharedPreferences存储。

7.使用帮助。

该模块通过读取帮助文件在TextView中显示,并且为TextView添加滚动条。

文件中含有本软件的特点、功能介绍、操作说明等,。

8.关于。

该模块的主要功能是通过一个简单的弹出窗口来显示本软件的版本信息、联系方式。

3项目功能描述

3.1软件欢迎界面模块功能描述

图4所示为欢迎界面模块,此模块作用是为了使软件的进入更连贯自然,让用户不感觉界面的出现突兀。

两秒后跳入其它页面,如果有密码跳入密码验证页面如图6所示,如果是第一次启动跳入引导页面如图5所示。

图4欢迎界面图5引导界面图6密码验证界面

关于欢迎页面启动的代码如下:

newHandler().postDelayed(newRunnable(){

Override

publicvoidrun(){

Intentintent=null;

initSaveData();

//判断是否有密码

if(share.getString("

mi_ma"

"

"

).equals("

)){

//判断是否为第一次启动

if(share.getBoolean("

first"

true)){

edit.putBoolean("

false);

mit();

intent=newIntent(WelcomeActivity.this,

GuideMain.class);

}else{

ActivityMain.class);

}

}else{

intent=newIntent(WelcomeActivity.this,

GestureVerifyActivity.class);

intent.putExtra("

from_activity"

0);

}

startActivity(intent);

finish();

}

},2000);

关于引导界面滑动事件代码:

Override

publicbooleanonTouch(Viewv,MotionEventevent){

switch(event.getAction()){

caseMotionEvent.ACTION_DOWN:

{

//手指按下的X坐标

downX=event.getX();

break;

caseMotionEvent.ACTION_UP:

floatlastX=event.getX();

//抬起的时候的X坐标大于按下的时候就显示上一图片

if(lastX>

downX){

if(currentPosition>

0){

//设置动画,

mImageSwitcher.setInAnimation(AnimationUtils

.loadAnimation(getApplication(),

R.anim.left_in));

mImageSwitcher.setOutAnimation(AnimationUtils

.loadAnimation(getApplication(),

R.anim.right_out));

currentPosition--;

mImageSwitcher.setImageResource(

imgIds[currentPosition%imgIds.length]);

setImageBackground(currentPosition);

}else{

Toast.makeText(getApplication(),"

向右滑动"

Toast.LENGTH_SHORT).show();

if(lastX<

if(currentPosition<

imgIds.length-1){

.loadAnimation(getApplication(),

R.anim.right_in));

.loadAnimation(getApplication(),

R.anim.left_out));

currentPosition++;

imgIds[currentPosition]);

Intentintent=newIntent(GuideMain.this,

startActivity(intent);

finish();

returntrue;

}

通过xml设置引导页面动画,代码如下(以向左滑动为例):

<

?

xmlversion="

1.0"

encoding="

utf-8"

>

setxmlns:

android="

schemas.android./apk/res/android"

<

translate

android:

fromXDelta="

-100%p"

toXDelta="

0"

duration="

500"

/>

/set>

3.2主界面功能描述

图7所示是软件的主页面,这是一个通过TabHost标签组件来实现的一个分类管理功能。

本界面的标签在屏幕的最下方,分别是文件管理、我的书架、我的设置。

点击不同的标签则显示不同的界面,默认显示标签为我的书架,打开选项中会出现对应的视图。

图7软件主界面

初始化选项卡代码如下:

privatevoidinitTabs(){

myTabHost=(TabHost)findViewById(R.id.TabHost1);

myTabHost.setup(this.getLocalActivityManager());

//添加文件管理选项

myTabHost.addTab(myTabHost

.newTabSpec("

tab_file"

.setIndicator(composeLayout("

文件管理"

R.drawable.folders))

.setContent(

newIntent(this,FileExplorerActivity.class)

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

//添加我的书架选项

tab_books"

我的书架"

R.drawable.books))

.setContent(newIntent(this,BookShelf.class)

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

//添加我的设置选项

tab_setting"

我的设置"

R.drawable.setting))

newIntent(this,MySetting.class)

myTabHost.setCurrentTab

(1);

myTabHost.setOnTabChangedListener(newOnTabChangedListener());

updateTab(myTabHost);

将程序关联成Android系统默认打开程序代码:

activityandroid:

name="

.zzu.ebookreader.ActivityMain"

intent-filter>

<

actionandroid:

android.intent.action.VIEW"

/action>

categoryandroid:

android.intent.category.DEFAULT"

/category>

dataandroid:

mimeType="

text/plain"

/data>

/intent-filter>

/activity>

接收从外部传来的参数并处理的代码:

Intentintent=getIntent();

Stringaction=intent.getAction();

if(intent.ACTION_VIEW.equals(action)){

Stringres_path="

;

try{

res_path=URLDecoder.decode(intent.getDataString(),"

utf8"

}catch(UnsupportedEncodingExceptione){

e.printStackTrace();

3.3书籍管理模块功能描述

图8所示是书籍管理主页面,最上面标题栏有导航按钮和书籍选择按钮。

当点击导航按钮时会从左侧弹出导航栏如图9所示,并把书籍从每行显示三个调整到每行显示两个。

当单击书籍时会打开相应的书籍阅读界面,长按某书籍时会弹出书籍操作窗口如图10所示,书籍操作窗口中有删除阅读记录、删除阅读记录和文件、移动到历史书架、移动到收藏书籍、查看书籍详情和分享本书,不同书架中的操作项略有不同。

图8书架效果页面图9导航栏页面图10书籍操作窗口

初始化ViewPager的核心代码如下:

privatevoidInitViewPager(){

mPager=(ViewPager)findViewById(R.id.vPager);

listViews=newArrayList<

View>

();

Intentintent=newIntent(BookShelf.this,BookShelfActivity.class);

intent.putExtra("

book_shelf"

MyConstant.BOOKS_RECENTLY);

listViews.add(getView("

BookShelfRecently"

intent));

Intentintent2=newIntent(BookShelf.this,BookShelfActivity.class);

intent2.putExtra("

MyConstant.BOOKS_HISTORY);

listViews.add(getV

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1