这是早期做的一个 android小说阅读器项目,是本地阅读器,没有联网功能,目前只支持txt格式。
但项目功能是比较齐全的:
- 文件预览
- 导入书籍
- 创建分类
- 批量管理书架上的图书
- 小说阅读
- 查看书籍目录
- 日夜间模式切换
- 创建书签
- 小说进度跳转
- 应用密码
等等。
软件按界面划分可划分为主要三个模块:图书管理模块、阅读管理模块、用户设置模块。
如下是应用的截图:
数据存储:
项目中,用了两种方式存储数据:SharedPreference和SQLite。
- SharedPreference:以xml文件格式存储简单的数据,本项目用于存储用户的配置信息,如:主题、屏幕亮度、密码等。
- SQLite:Android系统提供的SQLite标准的数据库,本项目用于存储用户密码和书籍信息,如:书籍名、书籍地址、目录、书签、阅读进度。
- 存储用户信息
本项目使用SharedPreference,以xml文件格式来存储用户配置信息。
文件名:userConfig
操作模式:Context.MODE_PRIVATE
内容:
键
|
数据类型
|
默认值
|
描述
|
paw
|
String
|
null
|
密码,默认null为不使用密码,用户设置的密码用MD5加密
|
inNight
|
boolean
|
false
|
夜间模式
|
lightFollowSys
|
boolean
|
true
|
屏幕亮度跟随系统
|
screenLight
|
int
|
待商榷
|
屏幕亮度
|
restTime
|
int
|
-1
|
休息提醒时间(分钟)
|
screenCloseTime
|
int
|
-1
|
屏幕关闭时间(分钟)
|
screenOrientation
|
int
|
VERTICAL
|
阅读时屏幕方向
(注释1)
|
pageRLMargin
|
int
|
待商榷
|
页面左右边距
|
pageTBMargin
|
int
|
待商榷
|
页面上下边距
|
lineSpacing
|
int
|
待商榷
|
行间距
|
passageSpacing
|
int
|
待商榷
|
段间距
|
textIndent
|
boolean
|
true
|
首行缩进
|
pageTurnType
|
int
|
CROSSWISE
|
翻页模式
(注释2)
|
defaultTheme
|
int
|
待商榷
|
默认主题
|
txtColour
|
int
|
待商榷
|
文字颜色
|
backColour
|
int
|
待商榷
|
背景颜色
|
backImg
|
int
|
待商榷
|
背景图片
|
com . horizon . global包中的相关全局变量:
注释1:
屏幕水平显示:
ScreenOrientation.
HORIZONTAL
= 0
屏幕垂直显示:
ScreenOrientation.
VERTICAL
= 1
注释2:
无动画:
PageTurnType
.
NO_ANIMATION
= 0
真实翻页:
PageTurnType
.
IMITATE
= 1
横向覆盖:
PageTurnType
.
CROSSWISE
= 2
自由拖动:
PageTurnType
.
FREE_DRAG
= 3
- 存储书籍信息
本项目使用SQLite标准的数据库,以表的方式存储书籍信息。
数据库名称:horizon.db
数据库版本号:1
包含4张表:tb_bookInfo(书籍信息表)
tb_classifyInfo(分类信息表)
tb_ catalogue(书籍目录表)
tb_ bookLabel(书籍书签表)
- 书籍信息表
表名:tb_bookInfo
描述:存储书籍主要信息
字段名
|
数据类型
|
约束
|
描述
|
_id
|
Integer
|
主键(自增)
|
书籍编号
|
name
|
Text
|
Not null
|
书籍名称
|
address
|
Text
|
unique唯一
|
书籍地址
|
cover
|
Integer
|
Not null
|
书籍封面
|
classifyId
|
Integer
|
分类表外键
|
分类
|
latestReadTime
|
Integer
|
null
|
最近后一次阅读时间
|
myLove
|
Integer
|
Not null
|
是否我的最爱,0:true;1:false
|
readRate
|
Integer
|
null
|
阅读进度
|
wordsNum
|
Integer
|
null
|
总字数
|
- 书籍分类表
表名:tb_classifyInfo
描述:存储书籍分类信息
字段名
|
数据类型
|
约束
|
描述
|
_id
|
Integer
|
主键(自增)
|
分类编号
|
name
|
Text
|
Not null
|
分类名称
|
- 书籍目录表
表名:tb_ catalogue
描述:存储书籍目录信息
字段名
|
数据类型
|
约束
|
描述
|
bookId
|
Integer
|
书籍表外键
|
书籍编号
|
chaptersName
|
Text
|
Not null
|
章节名称
|
rate
|
Integer
|
Not null
|
章节对应进度
|
- 书籍书签表
表名:tb_ bookLabel
描述:存储书籍书签信息
字段名
|
数据类型
|
约束
|
描述
|
_Id
|
Integer
|
主键(自增)
|
书签编号
|
bookId
|
Integer
|
书籍表外键
|
书籍编号
|
labelName
|
Text
|
Not null
|
书签名称
|
rate
|
Integer
|
Not null
|
书签对应进度
|
E-R关系模型
上面几个表的E-R关系模型如下:
apk安装包的下载地址:
https://www.pgyer.com/W9Eo