基于Android系统的电子书阅读器的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Android系统的电子书阅读器的设计与实现
修玉娇;韩晓红
【摘要】随着智能手机的普及和社会竞争的日益激烈,人们对智能手机的依赖越来越严重,需要随时获取信息来充实自己,在这种需求下,设计一款基于Android平台的电子书阅读器就显得尤为重要.这一款电子书阅读器经过客户需求分析、技术可行性分析、总体设计和详细编码等阶段,不仅实现了电子书基本的阅读功能,而且还拥有丰富的实用功能,并且在真机上进行了测试与验证,基本满足了用户的需求.【期刊名称】《甘肃高师学报》
【年(卷),期】2016(021)009
【总页数】3页(P12-14)
【关键词】阅读器;仿真翻页;本地文件浏览;书架
【作者】修玉娇;韩晓红
【作者单位】兰州城市学院培黎石油工程学院,甘肃兰州730070;兰州城市学院信息工程学院,甘肃兰州730070
【正文语种】中文
【中图分类】TP317.4
Android电子书阅读器主要是在Android Studio工具上完成编程,其中界面设计是用XML技术实现的,具体的功能是使用JAVA语言实现的[1].
本电子书阅读器的功能主要分为本地文件浏览的实现和对图书的阅读.其中,本地文件浏览是遍历SD卡把用户需要的书籍添加到书架中,可以进行直接阅读,也可
以添加到书架进行阅读,还可以将添加到书架的书籍进行删除操作;阅读模块主要是对选中的电子书进行阅读,设置了仿真翻页的效果.
2.1 技术框架设计
Android电子书阅读器采用了常见的三层架构,分别为UI层、业务逻辑层和数据层.
UI层:数据展示与管理、用户交互、绘制、Adapter.
业务逻辑层:数据加式(数据层的数据有时候需要进行加工成UI层需要的数据)、数据变化的通知机制.
数据层:数据访问(SQLite、文件等)、缓存(图片、文件等)、配置文件(shared perference).
此软件的开发环境:Windows7+Android Studio +SDK[2].
2.2 功能框架设计
手机电子书阅读器软件主要分为3个功能大模块,分别是软件主界面、书籍文件
浏览和阅读模块,如图1所示.
各个模块的详细设计如下:
(1)软件主界面模块.该模块使用三个Radio-Button分别来展示书架,书签和书城.分别点击这三个按钮可以跳转到不同页面,如图2所示.
(2)文件浏览.文件浏览的功能是通过一个弹出式窗口实现的,加载在一个Listview上面,经过对SD卡的遍历,将SD卡的文件以列表的形式展现出来,方便我们去寻找本地的电子书文档,可以将本地的电子书文档添加到书架,也可以进行直接阅读,而且我们可以查看他的详细信息.
ListView是以垂直列表的方式列出所需的列表项,可以用来在页面显示数据,处
理用户的点击操作,如图3所示.
(3)阅读.该模块主要表示对已选中的电子书进行阅读.打开一个自定义View,将
已选中的电子书显示在View上.由此来提供人们进行阅读.
3.1 主界面功能描述
主界面是由三个Radio-Button[3]来实现,分别是书架,书签和书城.
书架使显示将本地的电子书文件添加到书架中以方便下次的阅读.主要是设计了一
个选项菜单,长按添加到书架上的书籍时,可以进行打开,删除和查看详细信息的操作.
选项菜单的创建核心实现代码:
3.2 文件浏览功能的实现
文件浏览的功能是通过一个弹出式窗口实现的,加载在一个Listview上面,经过
对SD卡的遍历,将SD卡的文件以列表的形式展现出来,方便我们去寻找本地的电子书文档,可以将本地的电子书文档添加到书架,也可以进行直接阅读,而且我们可以查看他的详细信息.
ListView是以垂直列表的方式列出所需的列表项,可以用来在页面显示数据,处
理用户的点击操作.
下面介绍几个Listview中常用的UI属性:
android:divider可以设置列表的分割线,可以进行颜色的设置,也可以设置图片;android:dividerHeight用来设置列表分割线的高度.
再将数据绑定到Listview上的时候需要用适配器,在实现文件浏览功能的时候用
的是BaseAdapter自定义适配器,用来填充Listview.
首先新建一个适配器,继承BaseAdapter,并且实现父类中的方法,获取数据源
中的数据,将其绑定到Listview上,就可以显示出来.
ListView可以进行相对应的优化,否则会使程序出现冗余,Listview的优化一般
有三种方法:
(1)给Listview设置高度,减少首次加载的次数,如果不设置高度,就没办法计
算第一屏会显示多少个条目;
(2)使用convertview来节省对象创建,可以节省内存空间;
(3)使用ViewHolder类优化,减少findViewById的次数.
具体优化代码:
3.3 阅读模块功能描述
电子书阅读主页面,通过自定义一个View视图来显示书页,通过自定义类来读取文本内容并通过onDraw()方法信息进行绘制成图片,并通过View来把绘制的图
片显示出来.
3.4 阅读仿真翻书效果
实现Android的仿真翻书效果,运用的是贝赛尔曲线,在数学的数值分析领域中,贝赛尔曲线(Bézier曲线)是电脑图形学中相当重要的参数曲线.更高维度的广泛
化贝塞尔曲线就称作贝塞尔曲面,其中贝塞尔三角是一种特殊的实例.贝塞尔曲线
于1962年,由法国工程师皮埃尔·贝塞尔所广泛发表,他运用贝塞尔曲线来为汽
车的主体进行设计.
Android SDK中为我们实现了二阶和三阶贝塞尔曲线,任意阶的贝塞尔曲线,
sdk中并没有提供.
【相关文献】
[1]佘志龙.Google Android SDK开发案例大全[M].北京:人民邮电出版社,2010:8-14.
[2]W.Frank.Ableson.Unlocking.Android[M].ManningPublicactions,2010:225-238.
[3]Nor Shaniza Kamal Bashah,Natalia Kryvinska, Do van Thanh et al.Novel Service Discovery Techniques for Open Mobile Environments and Their Business
Applications[C].//Exploring services science. 2012:186-200.。