基于Android手机电子书阅读器的设计与实现

基于Android手机电子书阅读器的设计与实现
基于Android手机电子书阅读器的设计与实现

郑州大学毕业设计(项目报告)

题目:手机电子书阅读器的设计与实现

指导教师:张淑艳职称:讲师

学生姓名:王明学号:20117740444 专业:计算机科学与技术(软件测试)

院(系):软件学院

完成时间:2014年12月

2014年12月29日

目录

摘要 (1)

1项目开发目标 (2)

1.1项目来源 (2)

1.2开发目标 (2)

2项目总体设计 (3)

2.1技术框架设计 (3)

2.2数据库设计 (3)

2.3功能框架设计 (6)

3项目功能描述 (9)

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

3.2主界面功能描述 (11)

3.3书籍管理模块功能描述 (13)

3.4文件浏览模块功能描述 (17)

3.5阅读管理模块功能描述 (21)

3.5.1 章节管理模块功能描述 (25)

3.5.2 书签管理模块功能描述 (28)

3.5.3 搜索管理模块功能描述 (29)

3.6设置管理模块功能描述 (30)

3.7 使用帮助模块功能描述 (36)

3.8 关于模块功能描述 (37)

4项目技术总结 (39)

4.1技术创新及特点 (39)

4.2个人收获与体会 (45)

4.3致谢 (45)

摘要

在这个快节奏的时代,人们的空余时间越来越零碎,而且人们对智能手机的依赖越来越重,所以,一个拥有丰富功能且能随时进行电子书阅读的电子书阅读器的出现,则是我们刻不容缓的事情。

此软件是在Android平台上进行设计开发,此软件的开发是通过了客户需求分析阶段以及技术可行性分析阶段,然后进行总体设计阶段和详细设计编码等阶段。此软件不仅具有基本的电子书阅读功能,而且还拥有丰富的实用功能设计,例如目录自动生成以及阅读界面设置、阅读休息提醒等。经过不断的测试与完善,电子书阅读器功能稳定,并且在真机上对其进行了测试与验证,基本上达到了用户的需求标准。

关键字:电子书阅读器, Android,文件浏览,书架

1项目开发目标

1.1项目来源

此次开发的项目是手机电子书阅读器,属于自选项目。随着社会的发展,人们的生活节奏也越来越快空闲时间也越来越零碎,人们没有了大段的时间来进行书籍的阅读,所以一款能利用零碎时间进行随时阅读的软件成为了我们的需求。而一款能在人们随身携带的手机上运行的阅读软件成为了大家的选择。以前我们看看杂志,小说都要去图书馆借阅,而且时间有限,很不方便;而在电脑上看杂志,看小说,文档也是很不方便的。以此看来,一个好的手机阅读器软件的开发是相当有必要的。

1.2开发目标

手机电子书阅读器的开发目标就是让用户可以把零碎的空余时间有效的利用到书籍的阅读上,而且用户在没有网路的情况下也可以正常的进行书籍的阅读,让用户摆脱书籍的笨重携带不方便等确定,给予阅读者更大的便利性更好的舒适性。此软件是在Android平台上进行设计开发,它的界面丰富简洁但是却不简单,它包含了书架界面、文件查看界面、软件设置界面、书籍阅读界面等界面,它的功能全面。其优越性表现在:自动扫描手机里的所有书籍、手动从文件夹中选择添加书籍、自动为书籍生成章节目录、添加查看书签、全文关键词搜索、阅读主题选择、阅读字体大小设置等功能。此外,给用户更清晰方便的界面,也是本软件的出发点之一。

2项目总体设计 2.1技术框架设计

手机电子书阅读器采用了常见的三层架构,分别为UI 层、业务逻辑层和数据层。

UI 层:数据展示与管理、用户交互、绘制、Adapter 。

业务逻辑层:数据加式(数据层的数据有时候需要进行加工成UI 层需要的数据)、数据变化的通知机制

数据层:数据访问(SQLite 、文件等)、缓存(图片、文件等)、配置文件(shared perference )

此软件的开发环境:Windows7 + Eclipse4.2.0 + SDK 。

图1 软件框架结构

2.2数据库设计

E-R 图是直观表示概念模型的工具,它有四个基本成分:

UI Views

Data Adapter U I

BL

Data Observer

B

L

File

SQLite

Data Provider

Memory Cache

Local Data Util/Config

Data

矩形框,表示实体类型。 菱形框,表示联系类型。

椭圆形框,表示实体类型和联系类型的属性。对于关键码的属性,在属性名下划一横线。

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

书籍

书籍编号

书籍名称

书籍大小

所属书架

阅读位置

阅读时间

已读比例

书签

书籍编号

位置比例

书签位置

添加时间

n

书签编号

添加书签

1

书籍路径

图2 ER 图

数据库使用了2个实体,分别为书籍、书签。 书籍与书签的对应关系为1:n 。

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

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

字段名 类型 说明 book_id INTEGER 书籍编号 book_name TEXT 书籍名称 book_path TEXT 书籍路径 file_size TEXT 书籍大小 last_read DATETIME 阅读时间 book_shelf INTEGER 所属书籍 read_percentage DOUBLE 已读比例

pos INTEGER 阅读位置

表1 书籍表

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

CREATE TABLE books (

book_id INTEGER PRIMARY KEY,

book_name TEXT NOT NULL,

book_path TEXT NOT NULL UNIQUE,

file_size TEXT, last_read DATETIME

DEFAULT(datetime(CURRENT_TIMESTAMP,'localtime')),

book_shelf INTEGER,

read_percentage DOUBLE DEFAULT 0,

pos INTEGER DEFAULT 0

);

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

字段名类型说明id INTEGER 书签编号book_id INTEGER 书籍编号

percent DOUBLE 位置比例

content TEXT 书签内容

pos INTEGER 书签位置

time DATETIME 添加时间

表2 书签表

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

CREATE TABLE bookMarks (

id INTEGER PRIMARY KEY AUTOINCREMENT,"

book_id INTEGER,"

percent DOUBLE,

content TEXT,

pos INTEGER,

time DATETIME DEFAULT (

datetime( CURRENT_TIMESTAMP, 'localtime' )

)

);

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

CREATE TRIGGER fk_Delete BEFORE DELETE ON books

FOR EACH ROW

BEGIN

DELETE

FROM bookMarks

WHERE book_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 密码验证界面

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

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

Intent intent=null;

initSaveData();

//判断是否有密码

if(share.getString("mi_ma", "").equals("")){

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

if(share.getBoolean("first", true)){

edit.putBoolean("first", false);

https://www.360docs.net/doc/e05480438.html,mit();

intent = new Intent(WelcomeActivity.this,

GuideMain.class);

}else{

intent = new Intent(WelcomeActivity.this,

ActivityMain.class);

}

}else{

intent = new Intent(WelcomeActivity.this,

GestureVerifyActivity.class);

intent.putExtra("from_activity", 0);

}

startActivity(intent);

finish();

}

}, 2000);

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

@Override

public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_DOWN: {

// 手指按下的X坐标

downX = event.getX();

break;

}

case MotionEvent.ACTION_UP: {

float lastX = 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 < downX) {

if (currentPosition < imgIds.length - 1) {

mImageSwitcher.setInAnimation(AnimationUtils

.loadAnimation(getApplication(),

R.anim.right_in));

mImageSwitcher.setOutAnimation(AnimationUtils

.loadAnimation(getApplication(),

R.anim.left_out));

currentPosition++;

mImageSwitcher.setImageResource(

imgIds[currentPosition]);

setImageBackground(currentPosition);

} else {

Intent intent = new Intent(GuideMain.this,

ActivityMain.class);

startActivity(intent);

finish();

}

}

}

break;

}

return true;

}

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

android:fromXDelta="-100%p"

android:toXDelta="0"

android:duration="500"/>

3.2主界面功能描述

图7所示是软件的主页面,这是一个通过TabHost标签组件来实现的一个分类管理功能。本界面的标签在屏幕的最下方,分别是文件管理、我的书架、我的设置。点击不同的标签则显示不同的界面,默认显示标签为我的书架,打开选项中会出现对应的视图。实现了将本程序关联成手机默认打开程序中,即从外部打开文本文件时选择查看方式中会出现本软件图标供用户选择以本软件打开。

图7 软件主界面

初始化选项卡代码如下:

private void initTabs() {

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

myTabHost.setup(this.getLocalActivityManager());

//添加文件管理选项

myTabHost.addTab(myTabHost

.newTabSpec("tab_file")

.setIndicator(composeLayout("文件管理",

R.drawable.folders))

.setContent(

new Intent(this, FileExplorerActivity.class)

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

//添加我的书架选项

myTabHost.addTab(myTabHost

.newTabSpec("tab_books")

.setIndicator(composeLayout("我的书架",

R.drawable.books))

.setContent(new Intent(this, BookShelf.class)

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

//添加我的设置选项

myTabHost.addTab(myTabHost

.newTabSpec("tab_setting")

.setIndicator(composeLayout("我的设置",

R.drawable.setting))

.setContent(

new Intent(this, MySetting.class)

.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

myTabHost.setCurrentTab(1);

myTabHost.setOnTabChangedListener(new OnTabChangedListener());

updateTab(myTabHost);

}

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

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

Intent intent = getIntent();

String action = intent.getAction();

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

String res_path = "";

try {

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

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

}

3.3书籍管理模块功能描述

图8所示是书籍管理主页面,最上面标题栏有导航按钮和书籍选择按钮。当点击导航按钮时会从左侧弹出导航栏如图9所示,并把书籍从每行显示三个调整到每行显示两个。当点击导航里的按钮时会显示子功能导航,当再点击其它按钮时,会收起前面的子功能导航,展开当前的子功能。当单击书籍选择按钮时会弹

出书籍选择窗口,选择里面的书架则进入相应的书架界面,同时还可以通过左右滑动来切换书架界面。当单击书籍时会打开相应的书籍阅读界面,长按某书籍时会弹出书籍操作窗口如图10所示,书籍操作窗口中有删除阅读记录、删除阅读记录和文件、移动到历史书架、移动到收藏书籍、查看书籍详情和分享本书,不同书架中的操作项略有不同。

图8 书架效果页面 图9 导航栏页面

图10 书籍操作窗口

初始化ViewPager 的核心代码如下: private void InitViewPager() {

mPager = (ViewPager) findViewById(R.id.vPager); listViews = new ArrayList();

Intent intent = new Intent(BookShelf.this , BookShelfActivity.class ); intent.putExtra("book_shelf", MyConstant.BOOKS_RECENTLY); listViews.add(getView("BookShelfRecently", intent));

Intent intent2=new Intent(BookShelf.this , BookShelfActivity.class ); intent2.putExtra("book_shelf", MyConstant.BOOKS_HISTORY); listViews.add(getView("BookShelfHistory", intent2));

Intent intent3=new Intent(BookShelf.this , BookShelfActivity.class ); intent3.putExtra("book_shelf", MyConstant.BOOKS_COLLECT); listViews.add(getView("BookShelfCollect", intent3)); adapter = new MyPagerAdapter(listViews); mPager.setAdapter(adapter); mPager.setCurrentItem(0);

mPager.setOnPageChangeListener(new MyOnPageChangeListener()); }

单击书籍跳转至阅读页面进行阅读代码如下:

private void goReadActivity(BookInfo tem){

if(new File(tem.bookPath).exists()){

Intent intent = new Intent(BookShelfActivity.this,

ReaderActivity.class);

bundle = new Bundle();

bundle.putInt("id", tem.bookId);

bundle.putString("name", tem.bookName);

bundle.putString("path", tem.bookPath);

bundle.putInt("pos", tem.pos);

bundle.putDouble("percentage", tem.readPercentage);

intent.putExtras(bundle);

startActivity(intent);

}else{

booksTableOperate.delete(tem.bookId);

adapter.notifyDataSetChanged();

Toast.makeText(BookShelfActivity.this,

"书籍文件不存在,移除记录~", Toast.LENGTH_SHORT).show();

}

}

书籍排序的核心代码(以按时间排序为例):

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

long time1 = format.parse(https://www.360docs.net/doc/e05480438.html,stRead).getTime();

long time2 = format.parse(https://www.360docs.net/doc/e05480438.html,stRead).getTime();

if (time1 < time2) {

return 1;

} else if (time1 > time2) {

return -1;

} else {

return https://www.360docs.net/doc/e05480438.html,pareToIgnoreCase(book2.bookName);

}

} catch (ParseException e) {

e.printStackTrace();

}

分享本书的代码如下:

Intent sendIntent = new Intent();

sendIntent.setAction(Intent.ACTION_SEND);

sendIntent.putExtra(Intent.EXTRA_TEXT, "《"+

selectBook.bookName+"》"+

"这本书还不错,分享给大家看看!");

sendIntent.setType("text/plain");

startActivity(sendIntent);

点击添加书籍中的快速扫描按钮,进入此界面开始扫描,通过自定义文件名过滤类来进行搜索并显示正在扫描界面,其中有扫描到的文件数目如图11所示。扫描完成后使用ListView组件显示扫描结果,最上面标题栏有返回按钮、我的书籍标题、重新扫描按钮。当长按某文件时则切换到多选模式如图12所示,最上面标题栏改变为标记全部按钮、选中的文件数目显示、加入书架按钮、取消按钮。多选模式下可以点击文件进行逐个选择,也可进行全选和取消全选操作。当用户选择是标题栏上会有对应的已选文件个数显示。选好之后点击加入书架将会把选中的文件加入最近书架中,也可以点击取消则取消多选模式。

图11 正在扫描图12 多选模式

时时显示扫描到的文件个数部分代码:

Handler handler = new Handler() {

public void handleMessage(Message msg) {

if (msg.what != -1) {

numText.setText("" + msg.what);

} else {

listData = listTem;

ll.setVisibility(View.GONE);

}

super.handleMessage(msg);

};

};

class UpdataBooks extends Thread {

@Override

public void run() {

handler.sendEmptyMessage(1);

getAllFiles(file);

handler.sendEmptyMessage(-1);

}

}

扫描文本文件部分代码:

public void getAllFiles(File root) {

File files[] = root.listFiles(new MyFileFilter(false,"txt"));

if (files != null) {

for (File f : files) {

if (f.isDirectory()) {

getAllFiles(f);

} else if ( f.length() > 1024 * 100) {

Map tem = new HashMap();

tem.put("fileName", f.getName());

tem.put("filePath", f.getAbsolutePath());

tem.put("fileSize", getFileSize(f.length()));

num++;

handler.sendEmptyMessage(num);

listTem.add(tem);

isSelect.add(false);

}

}

}

}

3.4文件浏览模块功能描述

下面是文件浏览模块主页面,使用ListView组件显示文件目录,不同的文件类型显示不同的图标如图13所示。最上面标题栏有导航按钮,当点击导航按钮时会从左侧弹出导航栏如图14所示,导航栏中有标记文件按钮、分类排序按钮和添加到书架按钮,点击标记文件按钮或长按某文件或目录时则切换到多选模式,其中有多选按钮、反选按钮和取消按钮;点击分类排序则弹出子菜单,其中

有按名称排序、按大小排序、按时间排序和按类型排序;点击添加到书架时如果为选择文件则自动进入多选模式让用户进行文件选择,如果用户未选择则提示“请选择书籍”,进行选择是用户可选择文件或目录,系统会自动进行扫描,把符合要求的文件添加到“最近书架”中,并弹出提示信息,其中有失败个数、已存在个数和成功个数。在多选模式下点击返回按钮或点击标记文件会取消多选模式。非多选模式下,用户点击文件时本软件会根据文件扩展名来判断打开文件方式如图15所示,如果是文本文件则直接用本软件打开,并把其添加到“最近书架”中,其它格式则调用对应的软件打开,如果是未识别的类型则提示“没有打开此文件的应用”。

图13 文件浏览页面图14 文件浏览导航栏图15 打开视频文件

文件路径导航实现代码:

public void navigationBar() {

String[] strPath = null;

try {

strPath = currentParent.getCanonicalPath().split("/");

} catch (IOException e1) {

e1.printStackTrace();

}

tvpath.removeAllViews();

for (int i = 1; i < strPath.length; i++) {

final FrameLayout frameLayout = new FrameLayout(

FileExplorerActivity.this);

final LinearLayout linyou = new LinearLayout(

FileExplorerActivity.this);

final TextView imageText = new TextView(FileExplorerActivity.this);

imageText.setGravity(Gravity.CENTER);

基于Android系统的电子书阅读器的设计与实现

4.3.2 建表语句 1)创建: 1、创建书的表: create table IF NOT EXISTS book(bid integer primary key autoincrement,bpath varchar(255) not null); 2、创建书签的表: create table IF NOT EXISTS bookmark(bmid integer primary key autoincrement, bpath varchar(50) not null,bmname varchar(50) not null,bmoffset integer not null,bmsavetime varchar(20) not null); 3、创建用户管理的表: create table IF NOT EXISTS user(userid integer primary key autoincrement, username varchar(20) not null,password varchar(20) not null, telephone varchar(20) not null); 4、创建最近阅读的表 create table IF NOT EXISTS nearlyread(bookid integer primary key autoincrement, bookname varchar(50) not null,bookreadtime varchar(20) not null); 5、创建下载管理的表 create table IF NOT EXISTS down(downid integer primary key autoincrement, downuser varchar(20) not null,downbook varchar(20) not null, downtime varchar(20) not null); 2)SQlite3数据库使用方法: 选择:select from bookmark where bmid=1; 插入:insert (bookmark,null,values); 删除:delete from bookmark where bmid=3 ; 查找:query(table, columns, selection, selectionArgs, groupBy, having, orderBy) 4.3.3 数据表分析 本数据库用的是一个轻量级嵌入型数据库sqlite3 ,即创建了一个数据库reader.db,在数据库中创建了几张数据表。 在建设网站系统或者软件之前,我们必须对系统所用到的数据进行大致的分

安卓电子书阅读器课程设计

目录 1、设计内容及要求 (2) 1.1课题提出的背景目的及意义 (2) 1.2设计思路及研究方法 (2) 2、概要设计 (3) 2.1软件的基本功能要求 (3) 2.2系统架构 (4) 2.3开发环境 (4) 3、设计过程 (5) 3.1总体软件结构设计 (5) 3.2接口设计 (7) 3.3数据库设计 (7) 3.4软件设计模型 (10) 3.5软件维护设计 (10) 4、系统功能模块的设计与实现 (10) 4.1关键技术 (10) 4.2欢迎界面的实现 (13) 4.3主控制类的实现 (13) 4.4工具类的设计 (13) 4.5阅读界面的实现 (14) 4.6找书功能的实现 (15) 4.7书签功能的实现 (16) 4.8设置字体大小功能的实现 (17) 4.9更换背景图片以及设置字体颜色功能的实现 (18) 5、设计结果 (18) 6、设计总结 (24) 参考文献 (25)

1、设计内容及要求 1.1 课题提出的背景目的及意义 1.1.1 课题提出的背景 在这个信息化的时代,IT业已经成为世界发展的主流,我们对信息技术的依赖远远超过了对我们自己的依赖,计算机和手机已经成为我们日常生活中不可缺少的获得信息的渠道。正因为如此,各种各样的软件层出不穷,我们的生活也因为各种各样的软件变的更有滋有味。不缺乏娱乐性,也不缺乏教育意义,让我们从这些软件中受益匪浅,使我们看到了相比以前的巨大进步。我们的依赖性也越来越大,越来越离不开这些给我们提供日常信息的工具。手机也已不再仅仅是简单的人与人通话的工具,而是在很大程度上成为了我们获取信息的一个更好的渠道。开发一款好的手机软件是相当必要的。以前我们看看杂志,小说都要去图书馆借阅,而且时间有限,很不方便;而现在是在电脑上或者手机上看杂志,看小说,文档。以此看来,一个好的手机阅读器软件的开发是相当有必要的。 1.1.2 课题提出的目的 此次设计的目的很明显,就是给予阅读者更大的便利性,阅读者不用再到处拿着一本厚厚的书籍,大大减少了读者的负担,只需要下载一本txt格式的电子书,放在sd卡里边,就是人们的生活百科。 1.2 设计思路及研究方法 1.2.1 设计思路 阅读器的设计流程主要是按照软件设计的一般流程:需求分析、概要设计、详细设计、测试与维护的基本流程来设计开发的。首先,从整体分析软件功能,将功能模块化;然后对每个模块进行调试。最后对各个模块进行系统集成。1.2.2 研究方法 本系统在整体框架研究方法采用的是问卷调查法和观察研究法。而在总体设计上采用的是结构化方法,在局部底层开发上为便于交流采用快速原型法。 结构化系统的设计方法是在结构化程序设计思想基础上发展起来的,它的基本涵义是一个系统由层次化的程序模块构成,每一个模块只有一个入口和一

手机电子书阅读器设计

2015-2016学年第二学期《网络应用开发》 课程设计报告 题目:手机电子书阅读器设计 专业:网络工程 班级:13级(1)班 姓名:孙阳阳 指导教师:朱毅 成绩: 计算机学院 2016年6月1日

目录 1 设计内容及要求 (1) 1.1 课题提出的背景目的及意义 (1) 1.1.1 课题提出的背景 (1) 1.1.2 课题提出的目的 (1) 1.2 设计思路及研究方法 (1) 1.2.1 设计思路 (1) 1.2.2 研究方法 (1) 2 概要设计 (2) 2.1 软件的基本功能要求 (2) 2.2系统架构 (3) 2.3 开发环境 (3) 3 设计过程 (4) 3.1 总体软件结构设计 (4) 3.2 接口设计 (5) 3.2.1 外部接口 (5) 3.2.2 内部接口 (6) 3.3 数据库设计 (6) 3.3.1 数据模式设计 (6) 3.3.2 数据表格设计 (6) 3.3.3 表的具体设计 (7) 3.3.4 数据字典 (8) 3.4 软件设计模型 (8) 3.5 软件维护设计 (9) 4 系统功能模块的设计与实现 (9) 4.1 关键技术 (9) 4.1.1 android平台及java语言 (9) 4.1.2 中介软件 (10)

4.1.3 四大组件 (10) 4.1.4 sqlite3 数据库 (11) 4.1.5 Tomcat服务器 (11) 4.2 欢迎界面的实现 (11) 4.3 主控制类的实现 (11) 4.4工具类的设计 (12) 4.5 阅读界面的实现 (12) 4.6 找书功能的实现 (13) 4.7 书签功能的实现 (14) 4.8 设置字体大小功能的实现 (16) 4.9 更换背景图片以及设置字体颜色功能的实现 (16) 5 设计结果 (16) 6 设计总结 (21) 参考文献 (23)

基于Android平台的手机电子书阅读器设计

保密类别______ 编号________ 本科毕业论文基于Android平台的手机电子书阅读器设计 院(系)别传媒技术学院 专业数字媒体技术 班级08数媒技术(影视) 姓名王哲 学号201010014 指导教师王莉莉 中国传媒大学南广学院 2012年4 月12 日

摘要 在科技日益发达的今天,社会竞争越来越激烈,这要求人们不断的摄取信息来充实自己。要求人们能随时随地的了解并获取所需的信息。在这种情况下,电子书阅读器刚好满足了人们便捷地获取信息的需求。本文设计的手机电子书阅读器是基于Android平台设计的,Android平台是目前发展最快、最具市场前景的智能手机操作系统。 本系统是根据Google Android 平台用户的喜好和其平台的特性而设计的,在Google Android平台自带的SDK1.5环境下,运用Eclipse,Photoshop等相关工具进行开发的。本文介绍了Google Android 开发的流程,讨论了基于Android平台应用程序开发的关键技术,对手机电子书阅读器做了详细的需求分析,并重点介绍了基于Android 平台的手机电子书阅读器的总体设计,主要包括手机电子书阅读器的架构设计、各功能模块的设计与实现。 本文设计的手机电子书阅读器通过了功能和性能方面的测试,证明了本文设计方案的可行性。通过对基于Android平台手机电子书阅读器的设计与实现的介绍,希望能为今后开发出功能更强大的阅读器提供有益的借鉴。 关键词:Android平台;电子书阅读器;Java

ABSTRACT Today,it’s a more advanced in technology, increasingly competitive society, which requires people to the intake of information to enrich themselves. Requires people to always be in the know and get the required information. In this case, the news reader just to meet the needs of people know of external objects. In this paper the ebook reader is mobile phone design based on the Android platform of the design, Android platform is the fastest developing, the most market prospect of smartphone operating system. In this system, Google Android platform is based on the user's preferences and characteristics of its platform designed, in Google Android platform, comes with SDK1.5 environment, the use of the Eclipse, PhotoShop and other tools for development. This article introduces the development process of the Google Android, discusses the application development based on the Android platform of the key technology, to do a detailed analysis of the demand for Mobile phone ebook and introduces the focus on Mobile phone ebook reader overall’s design. includes the ebook reader mobile phone design mainly, architecture design and the function of the system. In this paper the ebook reader through mobile phone design of the function and performance test, proved the feasibility of this design. Through to the Android platform based on mobile phone ebook reader design and implementation of the introduction, the hope for the development in the future more powerful offer beneficial reference for the reader. Keywords :Android; E-book reader; Java

电子书阅读器硬件行业分析报告

电子书阅读器(硬件)行业投资方向选择研究报告 产品定义:电子书阅读器是一种采用LCD、电子纸为显示屏幕的新式数字阅读器,可以阅读网上绝大部分格式的电子书比如PDF,CHM,TXT 等。不过现在的电子书阅读器越来越多采用的是电子纸技术,既特指使用eink显示技术,提供类似纸张阅读感受的的电子阅读产品。 20世纪90年代产生,2007年亚马逊推出电子书阅读器kindle,掀起了全球电子书阅读热潮。亚马逊的成功不仅在于终端服务,更在于内容服务,利用其丰富的电子书资源,使电子书产业有了新的商业模式。在中国主要的电子书产品有汉王电纸书、盛大Bambook电子书。 电子书阅读器行业目前的市场规模 中国电子书阅读器市场规模过百万。清科研究中心数据显示,2010年Q4中国电子阅读器市场销量达30.51万部,2010年全年,中国电子书阅读器市场销量达103.49万部。汉王Q4销量为19.36万部,2010年销量达70.49万部,约占中国市场70%左右份额。盛大ambook Q4销量为3.91万部,Q4份额是12.8%。 据研究公司DisplaySearch最近一份报告预测,2010年中国的电子阅读器销量将从2009年的80万台跃升至300万台,达到全球市场的20%。该公司同时预测,中国将因其巨大的人口规模,在2015年之前超过美国成为世界最大的电子阅读器市场。 电子书阅读器市场增长趋势 据《纽约时报》报道,2010年电子书销量翻了一番,占了书籍整体销量的9%。销量的增长主要由各在厂商发布的电子书阅读器推动,比如Amazon Kindle, Sony Reader, Barnes & Noble Nook等。当然,iPad也是可选择之一。 当前,消费者对电子书终端装置的关注度较高。据comScore在2010年3月针对美国消费者进行电子书阅读器的相关调查,包括其对于iPad及电子书阅读器的认知度、态度及使

基于Android平台的手机电子书阅读器代码汇总

基于Android平台的手机电子书阅读器代码package com.lrc.view; /** * 书籍阅读 */ import java.io.IOException; import https://www.360docs.net/doc/e05480438.html,ng.reflect.Array; import java.math.BigDecimal; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Vector; import java.util.regex.Matcher; import java.util.regex.Pattern; import com.lrc.R; import com.lrc.bll.BookPageFactory; import com.lrc.bll.DbDataOperation; import com.lrc.bll.DbTags; import com.lrc.bll.PageWidget; import com.lrc.util.ArrayUtil; import com.lrc.util.BgUtil; import com.lrc.util.MathUtil; import com.lrc.util.TimeUtil; import android.app.Activity; import android.app.AlertDialog; import android.content.ContentResolver; import android.content.ContentValues; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import https://www.360docs.net/doc/e05480438.html,.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.provider.Settings;

度电子书横评_[数据篇]

泡泡网电子书阅读器频道10月26日配置电子纸/电子墨水屏幕的电子书阅读器是09年至今最为热门的IT数码产品之一。提到电子纸/电子墨水,自然要说到E-Ink公司。虽然成立于1997年的E-Ink公司已经有了10多年的历史,而且早在2004年,Sony已经有使用E-Ink显示屏的电子书阅读器产品面市。不过,在很长的时间里,无论是“E-Ink”,还是“电子书阅读器”都并不为人熟知,电子书阅读器,也只是一种只为少数人了解的产品。 然而,2009年,Amazon Kindle的成功让电子书阅读器走入了更多人的视线。在2009年的圣诞,Amazon通过Kindle阅读器平台销售的电子书数量甚至超越了纸质书,电子书阅读器开始走进大众的视线,并出现了电子书将会取代传统纸质书籍的说法。从而引发了电子书阅读器产品的“热潮”,众多品牌开始涉足电子书阅读器市场,例如Barnes & Noble书店,也推出自己的电子书阅读器产品——Nook,并取得了极大的成功。当然,还有更多的品牌跟进,Barnes & Noble是这些品牌中我们更熟悉的一个。

在国,汉王在电子书阅读器领域频频发力,让“电纸书”成为了耳熟能详的名词。鉴于国外电子书阅读器产品的大热,于是,到了2010年初,国的电子书阅读器市场品牌林立,电子书阅读器成为了这一时期最热门的数码电子产品之一。

书刊杂志曾经是阅读的主要途径

时至今日,传统纸质读物,电子书阅读器,iPad都成为阅读工具 阅读不再局限于“纸”上,以电子书阅读器等产品为代表的阅读终端,正在将一种新的阅读方式展现在我们面前,正在推动一种新的阅读趋势。 电子书阅读器的屏幕简析 电子书阅读器的核心硬件是屏幕,电子墨水,或者说电子纸面板采用的是一种不同于传统LCD面板的显示技术。电子纸面板通过反射环境光来实现容的显示,而且在可以不再加电的情况下保留住原先显示的图片和文字状态。有着无背光(不刺眼),耗电量小等特点,而显示效果仿则是效墨水在真实纸上的显现效果。 而电子墨水的主要成份,是数以百万计的细小微胶囊﹙microcapsules﹚,这些微胶囊约为人类头发直径大小。每个微胶囊包含带正电荷的白粒子和带负电荷的黑粒子,黑粒子、白粒子都在清晰液体悬浮。设置负极电场时,白粒子向微胶囊顶部移动,可见白粒子,此处表面看来白。同时,相反电场把黑粒子拉到微胶囊底部,黑粒子隐藏。这过程倒转过来,黑粒子在胶囊顶部出现,该处看来黑。正是这些技术的应用,让电子书阅读器可以实现与传统纸质书籍近似的显示效果,更容易被阅读者所接受。而也正是因为E-Ink电子墨水面板的这些特点,让电子书阅读器有了与传统纸质书籍竞争的“资本”。 目前市面上常见的电子纸屏幕主要由E-Ink公司提供,另外友达在2009年收购Sipix后,Sipix电子纸逐渐进入了量产、商用阶段,不过目前占据的市场份额还较小。

本科毕业设计---基于android手机电子书阅读器的设计与实现

毕业设计 题目:手机电子书阅读器的设计与实现

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

Android手机电子书阅读器的设计与实现设计说明书

毕业设计 题目Android手机电子书阅读器的设计与实现

Android手机电子书阅读器的设计与实现 The design and Implementation of the Android mobile phone e-book reader Xxx

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

电子书阅读器,给你更舒适的阅读感受

电子书阅读器,给你更舒适的阅读感受 厌倦了手机、iPad等产品的屏幕反光,也不愿再背着厚厚的书本到处奔跑,却依然想享受随时随处阅读的乐趣?入手一个应用了电子墨水屏的电子书阅读器吧。它们,既轻便又护眼。 易度E622A 品牌厂商:易度(YIDU) 产品亮点:有大量小人书下载 售价:约399元 作为盛大文学的重要合作伙伴,易度科技打造的易度 E622A可连接“云中书城”、“天方听书”和“卡咪小人书”,书源充足。6英寸的屏幕、8.6毫米的厚度以及212克的重量,非常适合手持阅读。按键设计简约,在控制面板的左侧和下方设计了数字按键区和功能按键区,后者的图标表示方式,让用户可以轻松上手使用。 使用体验:看TXT文件还可以,不支持PDF格式的自动调整。翻7页闪屏一次。 汉王黄金屋?乾光 无WiFi版 品牌厂商:(Hanvon)

产品亮点:超轻薄,约180克 售价:约749元 采用独特的前置光源技术,自上而下沿屏幕均匀导光,设置20阶亮度调节模式,阅读更舒适。触控升级,软键盘取代全硬件键盘,机身更整洁大方。6英寸屏,约180克,超轻便。此外,自带翻盖设计保护套,不用再单独购买,更贴心。 使用体验:背景光不能完全关闭,只能调节到最低,有点浪费电。没有上网功能,文档只能通过数据线导入。 润唐EC601 品牌厂商:润唐(ROTA) 产品亮点:可收发邮件 售价:约799元 支持前台看书、后台音乐,专用音乐键随时启动停止音乐功能节能式播放,外音喇叭,带书签功能。支持WiFi无线上网,可以收发邮件,随时随地浏览图片相册。 使用体验:全中文体验,适合纯看书,不折腾的朋友。 盛大新款Bright 品牌厂商:盛大(Bambook) 产品亮点:支持分章阅读,提醒连载更新 售价:约849元 拥有4G超大存储,内置8枚24级可调阅读灯,方便晚

手机电子阅读器的设计与实现设计说明

手机电子阅读器的设计与实现设计说明

毕业设计 题目Android手机电子书阅读器的设计与实现

Android手机电子书阅读器的设计与实现 The design and Implementation of the Android mobile phone e-book reader Xxx

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

基于Android平台的手机电子书阅读器设计本科生毕业论文

本科毕业论文基于Android平台的手机电子书阅读器设计

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

常用电子书格式与阅读软件

常用电子书格式与阅读软件 电子读物及电子图书存在的格式有很多种,下面简单地介绍一下当前比较流行和比较常见的几种电子读物文件格式。 .文件格式 这是目前比较流行也是被许多人青睐的一种电子读物文件格式,这种格式的制作工具也是最多的。它最大的特点就是阅读方便,制作简单 ,制作出来的电子读物相当精美,无需专门的阅读器支持就可以阅读。这种格式的电子读物对运行环境并无很高的要求。 但是这种格式的电子图书也有一些不足之处,如多数相关制作软件制作出来的文件都不支持和及常见的音频视频文件,需要 浏览器支持等。而且由于多数此格式的电子图书均无法直接获取其中的文字图像资料。 .文件格式 文件格式是微软年推出的基于文件特性的帮助文件系统,以替代早先的帮助系统,在中把类型文件称作 “已编译的帮助文件”。被浏览器支持的、、、、、常见图形文件(、、)、 音频视频文件(、、)等等,同样支持,并可以通过与联系在一起。 这种格式的电子读物的缺点是:要求使用者的操作系统必须是或及以上版本。如果读者的操作系统还是,还需要 安装一个被称作文件阅读升级包。 .文件格式 文件格式是早期的操作系统所使用的帮助文件系统。这种格式对读者的操作系统没有太多要求,及以后的版本都可以运行。 现在很多运行于平台的软件,其帮助文件几乎都是格式的。当然,随着微软帮助文件系统的推出和操作系统的发展,文件格 式很可能会被所代替。 文件格式的不足之处是美观程度不够好。由于现在很多人对电子读物的美观程度提出了较高的要求,所以这种格式的电子读物目前在网

络上不是很有市场。但是,我们可以肯定一点的是,这种格式的电子读物制作简单、获取方便、对阅读者无需特别的要求。另外,目前很多软 件的帮助文件还是使用这种格式,所以在短时间内这种格式还不会退出历史舞台。 .文件格式 文件格式是美国公司开发的电子读物文件格式。这种文件格式的电子读物需要该公司的文件阅读器来阅 读,所以要求读者的计算机安装有这个阅读器。该阅读器完全免费,可以到的站点下载。的优点在于这种格式的电子读物美观、便于 浏览、安全性很高。但是这种格式不支持、、、等基于的各种技术,所以它只适合于浏览静态的电子图书。格 式的电子图书可以使用来制作和编辑,该软件最新的版本是。 .文件格式 是北京华康公司开发的一种电子读物文件格式,目前国内很多大型的电子出版物都使用这种格式。其特点是较好地保留了原来的版面设 计,可以通过在线阅读也可以将电子读物下载到本地阅读,但是需要使用该公司专门的阅读器来阅读,该阅读器可以从该 公司的网站免费下载。 这种格式的电子读物由于对打印和拷贝作了限制,所以适当保护了作者和出版商的利益。与格式一样,该格式依然不支持上述的一些效 果。但是支持图片的导入。该格式对文件图像文字质量和最后成品的大小之间的平衡做了较好的处理,采用该格式的文件一般压缩率都比较高 。对大中小电子读物都是一个不错的选择。 制作该种格式的电子读物需要使用该公司的软件生成器来完成。该软件目前还没有共享版本,读者可以到该公司的站点去查找关于 该软件的相关信息。 .文件格式 格式是比较少见的一种电子读物文件格式。它是软件(原名)的一种专有格式。由于这

基于Android的多功能电子书阅读器的设计与实现

信息通信 INFORMATION & COMMUNICATIONS 2019年第8期(总第200期) 2019 (Sum. No 200) 基于Android 的多功能电子书阅读器的设计与实现 余丽娜 (江西青年职业学院,江西南昌330000) 摘要:随着社会的发展和人民生活质量的提升,手机已逐步走入了寻常百姓家。由于快节奏的生活,利用碎片时间进行电 子阅读的人越来越多。但世面上的电子书阅读器,不是阅读不够智能,就是操作过于复杂。因此,急需一款操作简单、功 能全面的电子书阅读器供人们使用。本文正是基于这样的背景,对一款电子书阅读器进行设计与实现"匕软件在Android 市场上线后,可以给电子书阅读爱好者提供更简单的操作体验和更智能化的阅读方式,相信会符合用户对阅读器的需求。 关键词:电子书;阅读器;Android 中图分类号:TP391.1 文献标识码:A 文章编号:1673-1131(2019)08-0199-02 0引言 基于Android 的多功能电子书阅读器主要是以提供各类 电子书为内容,实现多样化的阅读形式。基于用户对各类题 材内容的阅读需求,整合具备内容出版或发行资质的机构提 供的各类电子书。用户可以在APP 上选择感兴趣的内容进行 在线阅读,也可请求下载之后离线缓冲阅读。此外,此APP 还 提供了交流平台,供用户对于电子书阅读前后的阅读感想进 行交流和评论,增加了书友间的互动性。操作的简易性、阅读 的智能性和平台的交流性都是本文的亮点。因此,在简化书 本阅读和改善用户体验等方面,本文的设计是非常有意义的。 1系统概述 系统需求概述是为了能从软件功能结构上把握整个软件 的设计,使软件的设计过程上结构趋向于清晰,从而简化设计 者的工作,节省不必要的人力、物力和时间,达到尽快将软件 设计出来的目的。该软件是一款多功能的电子书阅读软件, 用户可使用该软件进行首页浏览,搜书,看书等功能。同时, 在注册拥有个人账号后,可对电子书进行评论,或与其他用户 进行交流,设置个人资料。该软件是一款应用型的Android 软 件,主要是与用户操作进行交互,所以从软件构造上可分为六 大模块,分别为:欢迎模块、主界面模块、书籍管理模块、阅读 模块、设置模块以及评论模块。 欢迎模块,为了使用户进入软件时不显突兀,在使用软件 时,提供一段欢迎界面。 主界面模块是软件开始运行时的主页面,由四个子模块 组成,分别是首页、分类找书、搜书和个人信息。 书籍管理模块由收藏管理、下载管理和历史记录管理三 部分组成。看子模块的名字可知,它们分别对电子书的收藏 和下载进行管理,而历史记录则保存阅读的历史,方便用户查 看自己看过的书籍,方便找书。 阅读模块为电子书阅读器的核心模块,该模块的功能设 置,直接影响的是用户对该类软件的用户体验度。所以,考虑 到用户体验问题,该模块为迎合用户阅读需求设置了一系列功 能,包括夜间模式、阅读背景颜色选择、亮度调节等等之类的。 设置模块分为个人设置和系统设置。系统设置是对于该 款软件的总体设置,可进行登录、注册、清除缓存之类的操作。 而个人设置针对的是登录用户,用户可对自己的信息进行查 看和修改。 评论模块,是关于该电子书的评论区,可观看所有用户关 于电子书的评论,同时用户可发表评论与读者们进行交流。 2系统核心功能设计与实现 2.1分类找书 分类界面的实现为一个简单的GridView 布局,将预先存 放在工程的res-drarwable 目录下的图片以网格的形式显示, 每个item 里除了图片外再在下面加上分类名。用户点击不同 分类后,GridView 组件注册的OnltemClickListener 会将分类 名传到webservice 上,从数据库中获取所需数据,在另一个新 的Activity 中显示结果数据。 2.2搜书 根据搜索框中输入的关键字,将关键字传给webservice 的 搜书函数,再得到webservice 返回的数据。在根据关键字搜索 电子书时,客户端程序方面不做处理关键字的操作,而是在Sql server 数据库中做处理。Sql server 中定义了一个对比相似度 的函数,和一个传入关键字搜索书的存储过程。在webservice 的搜书函数中的访问数据库的sql 语句,就是调用该存储过程 获得结果数据。而搜索框下面的每个标签是一个TextView,每 次显示该页面前,会在本地SQLite 数据库的搜索记录表中获 取最后插入表的八个搜索的记录。快捷查询的功能,是在每个 标签上监听onClickListener 事件,使之点击能填充搜索框。每 次往搜索记录表中插入新的数据时,检测一遍是否插入的内容 已经存在,存在时,删除原先的内容,再插入新的内容。 2.3添加收藏 在电子书简介页面,有收藏按钮。当从webserver 上获取 来的数据显示当前用户已经收藏该本电子书时,收藏按钮显 示为不可按状态。可按状态时,点击按钮,按钮上注册的On - ClickListener 事件会将收藏信息发送给webservice 进行数据 库存档。操作成功,电子书收藏成功,按钮变为不可按,操作 失败,给出Toast 提示信息,表示收藏失败。 2.4下载书籍 在电子书简介页面,有下载按钮。当程序运行检测到 sdcard 里存在该本书时,下载按钮就显示不可按状态。可按状 态时,点击按钮,程序会启动一个Service 服务,Service 根据之 前获取到的URL 地址,向bomb 服务器发送下载请求。下载 失败,Toast 出现提示。下载成功,改变下载按钮的状态。2.5删除下载 已下载的书籍界面同收藏界面一样,都是以GridView 网 格形式显示,每本书显示封面和书名。不过,收藏界面在初始 化界面时,是通过获取SQL Server 数据库中的收藏表中的数 据,从而生成收藏界面。而下载界面,则是通过检验sdcard 中 是否存在已下载的书籍信息,将存在的书籍信息提取显示出来。 2.6阅读 刚开始进入阅读界面时,首先根据当前阅读电子书的信 息,去SQLite 数据库的书签表中提取该本书的阅读记录,确定 本次阅读的章节和起始位置。书签表中不存在该书书签数据 时,从第一章的起始位置开始阅读。阅读界面整体布局时由一个 199

基于Android手机电子书阅读器的设计与实现

郑州大学毕业设计(项目报告) 题目:手机电子书阅读器的设计与实现 指导教师:张淑艳职称:讲师学生姓名:王明学号:20117740444 专业:计算机科学与技术(软件测试) 院(系):软件学院 完成时间: 2014年12月 2014年 12月 29日 目录

摘要 (1) 1项目开发目标 (2) 1.1项目来源 (2) 1.2开发目标 (2) 2项目总体设计 (3) 2.1技术框架设计 (3) 2.2数据库设计 (4) 2.3功能框架设计 (8) 3项目功能描述 (12) 3.1软件欢迎界面模块功能描述 (12) 3.2主界面功能描述 (16) 3.3书籍管理模块功能描述 (20) 3.4文件浏览模块功能描述 (27) 3.5阅读管理模块功能描述 (34) 3.5.1 章节管理模块功能描述 (42) 3.5.2 书签管理模块功能描述 (46) 3.5.3 搜索管理模块功能描述 (48) 3.6设置管理模块功能描述 (48) 3.7 使用帮助模块功能描述 (59) 3.8 关于模块功能描述 (61) 4项目技术总结 (64) 4.1技术创新及特点 (64)

4.2个人收获与体会 (76) 4.3致谢 (76)

摘要 在这个快节奏的时代,人们的空余时间越来越零碎,而且人们对智能手机的依赖越来越重,所以,一个拥有丰富功能且能随时进行电子书阅读的电子书阅读器的出现,则是我们刻不容缓的事情。 此软件是在Android平台上进行设计开发,此软件的开发是通过了客户需求分析阶段以及技术可行性分析阶段,然后进行总体设计阶段和详细设计编码等阶段。此软件不仅具有基本的电子书阅读功能,而且还拥有丰富的实用功能设计,例如目录自动生成以及阅读界面设置、阅读休息提醒等。经过不断的测试与完善,电子书阅读器功能稳定,并且在真机上对其进行了测试与验证,基本上达到了用户的需求标准。 关键字:电子书阅读器, Android,文件浏览,书架

基于Android系统的电子书阅读器的设计与实现

4.3.2 建表语句 1)创建: 1、创建书的表: create table IF NOT EXISTS book(bid integer primary key autoincrement,bpath varchar(255) not null); 2、创建书签的表: create table IF NOT EXISTS bookmark(bmid integer primary key autoincrement, bpath varchar(50) not null,bmname varchar(50) not null,bmoffset integer not null,bmsavetime varchar(20) not null); 3、创建用户管理的表: create table IF NOT EXISTS user(userid integer primary key autoincrement, username varchar(20) not null,password varchar(20) not null, telephone varchar(20) not null); 4、创建最近阅读的表 create table IF NOT EXISTS nearlyread(bookid integer primary key autoincrement, bookname varchar(50) not null,bookreadtime varchar(20) not null); 5、创建下载管理的表 create table IF NOT EXISTS down(downid integer primary key autoincrement, downuser varchar(20) not null,downbook varchar(20) not null, downtime varchar(20) not null); 2)SQlite3 数据库使用方法: 选择:select from bookmark where bmid=1; 插入:insert (bookmark,null,values); 删除:delete from bookmark where bmid=3 ; 查找:query(table, columns, selection, selectionArgs, groupBy, having, orderBy) 4.3.3 数据表分析 本数据库用的是一个轻量级嵌入型数据库sqlite3 ,即创建了一个数据库reader.db, 在数据库中创建了几张数据表。 在建设网站系统或者软件之前,我们必须对系统所用到的数据进行大致的分

相关文档
最新文档