基于Android系统的电子书阅读器的设计与实现
- 格式:doc
- 大小:1.51 MB
- 文档页数:20
基于Android系统的电子书阅读器的设计与实现修玉娇;韩晓红【摘要】随着智能手机的普及和社会竞争的日益激烈,人们对智能手机的依赖越来越严重,需要随时获取信息来充实自己,在这种需求下,设计一款基于Android平台的电子书阅读器就显得尤为重要.这一款电子书阅读器经过客户需求分析、技术可行性分析、总体设计和详细编码等阶段,不仅实现了电子书基本的阅读功能,而且还拥有丰富的实用功能,并且在真机上进行了测试与验证,基本满足了用户的需求.【期刊名称】《甘肃高师学报》【年(卷),期】2016(021)009【总页数】3页(P12-14)【关键词】阅读器;仿真翻页;本地文件浏览;书架【作者】修玉娇;韩晓红【作者单位】兰州城市学院培黎石油工程学院,甘肃兰州730070;兰州城市学院信息工程学院,甘肃兰州730070【正文语种】中文【中图分类】TP317.4Android电子书阅读器主要是在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 BusinessApplications[C].//Exploring services science. 2012:186-200.。
期末作品报告课程名称: Android应用程序开发学号:姓名:班别:1引言在这个快节奏的时代,人们的空余时间越来越零碎,而且人们对智能手机的依赖越来越重,所以,一个拥有丰富功能且能随时进行电子书阅读的在线小说阅读器的出现,则是我们刻不容缓的事情。
此软件是在Android平台上进行设计开发,此软件的开发是通过了客户需求分析阶段以及技术可行性分析阶段,然后进行总体设计阶段和详细设计编码等阶段。
此软件不仅具有基本的电子书阅读功能,而且还拥有丰富的实用功能设计。
经过不断的测试与完善,电子书阅读器功能稳定,并且在真机上对其进行了测试与验证,基本上达到了用户的需求标准。
1、功能分析1.1项目来源此次开发的项目是在线小说阅读器,属于自选项目。
随着社会的发展,人们的生活节奏也越来越快空闲时间也越来越零碎,人们没有了大段的时间来进行书籍的阅读,所以一款能利用零碎时间进行随时阅读的软件成为了我们的需求。
而一款能在人们随身携带的手机上运行的阅读软件成为了大家的选择。
以前我们看看杂志,小说都要去图书馆借阅,而且时间有限,很不方便;而在电脑上看杂志,看小说,文档也是很不方便的。
以此看来,一个好的手机阅读器软件的开发是相当有必要的。
1.2开发目标在线小说阅读器的开发目标就是让用户可以把零碎的空余时间有效的利用到书籍的阅读上,而且用户在没有网路的情况下也可以正常的进行书籍的阅读,让用户摆脱书籍的笨重携带不方便等确定,给予阅读者更大的便利性更好的舒适性。
此软件是在Android平台上进行设计开发,它的界面丰富简洁但是却不简单,它包含了书架界面、2文件查看界面、软件设置界面、书籍阅读界面等界面,它的功能全面。
其优越性表现在:自动扫描手机里的所有书籍、手动从文件夹中选择添加书籍、自动为书籍生成章节目录、添加查看书签、全文关键词搜索、阅读主题选择、阅读字体大小设置等功能。
此外,给用户更清晰方便的界面,也是本软件的出发点之一。
2、功能设计2.1系统功能设计根据需要,在线图书阅读器主要实现即时的在线阅读,主要包含以下功能:(1)在线即时搜索图书:可以按照书名、作者进行搜索所要阅读的书籍。
UNIVERSITY OF TECHNOLOGY 毕业设计题目Android手机电子书阅读器的设计与实现学生姓名宋攀飞学号********专业班级通信工程指导教师学院通信学院答辩日期2012年10月摘要在这个信息化的时代,计算机越来越快速,手机也越来越智能化,所以,一个好的应用软件在很大程度上能提升一个手机的销量和品牌。
而在智能手机上安装一个拥有丰富功能支持的电子书阅读器,更加能增加吸引力。
本设计采用Android平台,根据对手机电子书阅读器的客户需求分析和技术可行性分析,经过总体设计和详细设计编码测试等阶段,完成了电子书阅读器软件的设计。
不仅实现了电子书阅读器最基本的阅读功能,而且还为用户提供了丰富的功能支持,包括找书,书签,自动翻页以及阅读界面设置的操作。
而本次设计最大的特点则是通过屏幕触控实现了移动时的翻页特效。
经过不断的测试与完善,电子书阅读器功能稳定,并且在真机上对其进行了测试与验证,基本上达到了用户的需求标准。
关键词:Android;电子书阅读器;屏幕触控;翻页;书签;目录前言 ........................................................................................................................................ 1第1章前言1.1课题提出的背景目的及意义 ................................................................................................... 11.1.1 课题提出的背景课题提出的背景 ................................................................................................................ 11.1.2 课题提出的目的课题提出的目的 ................................................................................................................ 1 1.2设计思路及研究方法 ............................................................................................................... 11.2.1 设计思路设计思路 ............................................................................................................................ 11.2.2 研究方法研究方法 ............................................................................................................................ 1需求分析 ................................................................................................................................ 2第2章需求分析2.1软件的基本功能要求 ............................................................................................................... 2 2.2系统架构系统架构 .................................................................................................................................... 3 2.3开发环境 ................................................................................................................................... 3软件设计 ................................................................................................................................ 4第3章软件设计3.1总体软件结构设计 ................................................................................................................... 4 3.2接口设计 ................................................................................................................................... 53.2.1 外部接口外部接口 ............................................................................................................................ 53.2.2 内部接口内部接口 ............................................................................................................................ 6 3.3数据库设计 ............................................................................................................................... 63.3.1 数据模式设计数据模式设计 .................................................................................................................... 63.3.2 数据表格设计数据表格设计 .................................................................................................................... 63.3.3 表的具体设计表的具体设计 .................................................................................................................... 73.3.4 数据字典数据字典 ............................................................................................................................ 7 3.4软件设计模型 ........................................................................................................................... 8 3.5软件维护设计 ........................................................................................................................... 9系统功能模块的设计与实现 (10)第4 章系统功能模块的设计与实现4.1关键技术 (10)4.1.1 android平台及java语言语言 (10)4.1.2 中介软件中介软件 (10)4.1.3 四大组件四大组件 (11)4.1.4 sqlite3 数据库 (11)4.1.5 Tomcat服务器服务器 (11)4.2欢迎界面的实现 (12)4.3主控制类的实现 (12)4.4工具类的设计工具类的设计 (13)4.5阅读界面的实现 (13)4.6找书功能的实现 (14)4.7书签功能的实现 (15)4.8设置字体大小功能的实现 (16)4.9更换背景图片以及设置字体颜色功能的实现 (17)4.10音乐播放功能的实现 (17)系统测试 (17)第5章系统测试5.1欢迎界面 (17)5.2用户阅读界面 (18)设计总结 (27)设计总结代码 (28)代码第1章前言1.1 课题提出的背景目的及意义课题提出的背景目的及意义1.1.1 课题提出的背景课题提出的背景在这个信息化的时代, IT业已经成为世界发展的主流,我们对信息技术的依赖远远超在这个信息化的时代,过了对我们自己的依赖,计算机和手机已经成为我们日常生活中不可缺少的获得信息的渠道。
保密类别______ 编号________本科毕业论文基于Android平台的手机电子书阅读器设计院(系)别传媒技术学院专业数字媒体技术班级08数媒技术(影视)姓名学号指导教师学院2012年4 月12 日摘要在科技日益发达的今天,社会竞争越来越激烈,这要求人们不断的摄取信息来充实自己。
要求人们能随时随地的了解并获取所需的信息。
在这种情况下,电子书阅读器刚好满足了人们便捷地获取信息的需求。
本文设计的手机电子书阅读器是基于Android平台设计的,Android平台是目前发展最快、最具市场前景的智能手机操作系统。
本系统是根据Google Android 平台用户的喜好和其平台的特性而设计的,在Google Android平台自带的SDK1.5环境下,运用Eclipse,Photoshop等相关工具进行开发的。
本文介绍了Google Android 开发的流程,讨论了基于Android平台应用程序开发的关键技术,对手机电子书阅读器做了详细的需求分析,并重点介绍了基于Android 平台的手机电子书阅读器的总体设计,主要包括手机电子书阅读器的架构设计、各功能模块的设计与实现。
本文设计的手机电子书阅读器通过了功能和性能方面的测试,证明了本文设计方案的可行性.通过对基于Android平台手机电子书阅读器的设计与实现的介绍,希望能为今后开发出功能更强大的阅读器提供有益的借鉴。
关键词:Android平台;电子书阅读器;JavaABSTRACTToday,it’s a m ore 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。
基于Android的电子图书APP的设计1. 引言1.1 介绍基于Android的电子图书APP的设计在用户界面设计方面,考虑到用户在阅读过程中的舒适度和操作便捷性,设计简洁明了的界面布局和交互方式将是关键。
功能设计方面,除了基本的阅读功能外,还可以考虑加入目录快速导航、书签标记、阅读进度同步等功能,提升用户体验。
数据存储设计和云端同步设计则可以确保用户阅读数据的安全性和便捷性。
安全性设计是保障用户个人隐私和阅读数据安全的重要环节。
通过对以上方面的设计深入研究和分析,基于Android的电子图书APP能够更好地满足用户的阅读需求,提升用户体验。
在未来的发展中,可以进一步优化功能、加强数据安全保护等方面,提高APP的竞争力和市场份额。
希望通过本文展开的讨论,可以为基于Android 的电子图书APP的设计提供一定的参考和借鉴,并为其未来发展提出一些建议。
2. 正文2.1 用户界面设计用户界面设计是电子图书APP中至关重要的部分,一个优秀的用户界面设计可以提升用户体验,增加用户的使用频率。
在设计用户界面时,需要考虑到用户的习惯和需求,使得用户可以轻松地找到他们需要的内容。
用户界面应该简洁明了,避免过多的复杂操作和信息,让用户一目了然。
在布局上,可以采用清晰的分类和标签,使得用户可以快速找到自己需要的电子图书。
界面的设计也应该符合Android系统的设计规范,保持统一性和一致性。
采用Material Design的设计语言,可以让用户更易于理解和操作。
用户界面的交互设计也十分重要。
需要考虑到用户的操作习惯,设计简单直观的交互方式,如滑动、点击等,方便用户使用。
一个成功的用户界面设计应该是简洁、清晰、符合Android系统的设计规范,并且考虑到用户的操作习惯和需求。
通过良好的用户界面设计,可以提升电子图书APP的使用体验,吸引更多的用户使用。
2.2 功能设计功能设计是电子图书APP设计中至关重要的一部分,它直接关系到用户能否顺利地使用和享受到APP提供的服务。
封面作者:Pan Hongliang仅供个人学习UNIVERSITY OF TECHNOLOGY毕业设计题目Android手机电子书阅读器的设计与实现学生姓名宋攀飞学号00101106 专业班级通信工程指导教师学院通信学院答辩日期2012年10月摘要在这个信息化的时代,计算机越来越快速,手机也越来越智能化,所以,一个好的应用软件在很大程度上能提升一个手机的销量和品牌.而在智能手机上安装一个拥有丰富功能支持的电子书阅读器,更加能增加吸引力.本设计采用Android平台,根据对手机电子书阅读器的客户需求分析和技术可行性分析,经过总体设计和详细设计编码测试等阶段,完成了电子书阅读器软件的设计.不仅实现了电子书阅读器最基本的阅读功能,而且还为用户提供了丰富的功能支持,包括找书,书签,自动翻页以及阅读界面设置的操作.而本次设计最大的特点则是通过屏幕触控实现了移动时的翻页特效.经过不断的测试与完善,电子书阅读器功能稳定,并且在真机上对其进行了测试与验证,基本上达到了用户的需求标准.关键词:Android;电子书阅读器;屏幕触控;翻页;书签;目录第1章前言 (3)1.1课题提出的背景目的及意义 (3)1.1.1 课题提出的背景 (3)1.1.2 课题提出的目的 (3)1.2设计思路及研究方法 (3)1.2.1 设计思路 (3)1.2.2 研究方法 (3)第2章需求分析 (4)2.1软件的基本功能要求 (4)2.2系统架构 (5)2.3开发环境 (5)第3章软件设计 (5)3.1总体软件结构设计 (5)3.2接口设计 (7)3.2.1 外部接口 (7)3.2.2 内部接口 (7)3.3数据库设计 (7)3.3.1 数据模式设计 (7)3.3.2 数据表格设计 (8)3.3.3 表的具体设计 (8)3.3.4 数据字典 (9)3.4软件设计模型 (9)3.5软件维护设计 (10)第4 章系统功能模块的设计与实现 (10)4.1关键技术 (10)4.1.1 android平台及java语言 (10)4.1.2 中介软件 (10)4.1.3 四大组件 (11)4.1.4 sqlite3 数据库 (11)4.1.5 Tomcat服务器 (11)4.2欢迎界面的实现 (12)4.3主控制类的实现 (12)4.4工具类的设计 (13)4.5阅读界面的实现 (13)4.6找书功能的实现 (13)4.7书签功能的实现 (14)4.8设置字体大小功能的实现 (15)4.9更换背景图片以及设置字体颜色功能的实现 (15)4.10音乐播放功能的实现 (16)第5章系统测试 (16)5.1欢迎界面 (16)5.2用户阅读界面 ............................................................................................. 错误!未定义书签。
基于Android的电子图书APP的设计1. 引言1.1 背景介绍在当今数字化时代,人们对于获取信息和阅读的方式发生了巨大的变革,传统的纸质图书逐渐被电子图书所取代。
随着智能手机和平板电脑的普及,电子图书APP成为了人们获取阅读资料的重要途径。
基于Android的电子图书APP设计是迎合这一趋势的重要构建之一。
Android作为世界上流行度最高的移动操作系统之一,具有广泛的用户基础和强大的开发支持,为电子图书APP的设计与开发提供了丰富的可能性。
在这样一个背景下,设计一款优秀的基于Android的电子图书APP至关重要。
本文将通过分析基于Android的电子图书APP的设计原则、功能设计、界面设计、技术实现以及用户体验优化等方面,探讨如何设计一款符合用户需求并具有良好体验的电子图书APP。
通过全面而系统的研究,旨在为电子图书APP的设计提供可靠的指导和借鉴,促进电子阅读产业的发展与进步。
1.2 研究目的研究目的是为了探索基于Android的电子图书APP设计的最佳实践方法,提高用户阅读体验和使用便利性。
通过深入分析用户的阅读习惯和需求,研究如何设计更加符合用户需求的功能和界面,以及如何利用先进的技术实现高效稳定的系统运行。
我们还希望通过优化用户体验,提升用户对电子图书APP的满意度,增加用户粘性,从而促进电子阅读产业的发展和推广。
通过本研究,我们也希望可以为其他类似的移动应用设计提供借鉴和经验,为移动应用设计领域的进步做出贡献。
1.3 研究意义电子图书APP是随着移动互联网的发展而兴起的一种新型阅读方式,它将传统纸质图书转化为数字化版本,提供了更加便捷和多样化的阅读体验。
随着智能手机的普及和移动网络的高速发展,人们对于阅读方式的需求也发生了变化,电子图书APP因其便携、实用、交互性强等特点受到了越来越多用户的青睐。
在这样的背景下,基于Android的电子图书APP的设计具有重要的研究意义。
通过设计一款功能丰富、界面友好的电子图书APP,能够提升用户的阅读体验,满足用户对于各种类型图书的阅读需求。
基于Android的多功能电子书阅读器的设计与实现余丽娜(江西青年职业学院,江西南昌330000)摘要:随着社会的发展和人民生活质量的提升,手机已逐步走入了寻常百姓家。
由于快节奏的生活,利用碎片时间进行电子阅读的人越来越多。
但世面上的电子书阅读器,不是阅读不够智能,就是操作过于复杂。
因此,急需一款操作简单、功能全面的电子书阅读器供人们使用。
本文正是基于这样的背景,对一款电子书阅读器进行设计与实现"匕软件在Android 市场上线后,可以给电子书阅读爱好者提供更简单的操作体验和更智能化的阅读方式,相信会符合用户对阅读器的需求。
关键词:电子书;阅读器;Android中图分类号:TP391.1文献标识码:A文章编号:1673-1131(2019)08-0199-020引言基于Android的多功能电子书阅读器主要是以提供各类电子书为内容,实现多样化的阅读形式。
基于用户对各类题材内容的阅读需求,整合具备内容出版或发行资质的机构提供的各类电子书。
用户可以在APP上选择感兴趣的内容进行在线阅读,也可请求下载之后离线缓冲阅读。
此外,此APP还提供了交流平台,供用户对于电子书阅读前后的阅读感想进行交流和评论,增加了书友间的互动性。
操作的简易性、阅读的智能性和平台的交流性都是本文的亮点。
因此,在简化书本阅读和改善用户体验等方面,本文的设计是非常有意义的。
1系统概述系统需求概述是为了能从软件功能结构上把握整个软件的设计,使软件的设计过程上结构趋向于清晰,从而简化设计者的工作,节省不必要的人力、物力和时间,达到尽快将软件设计出来的目的。
该软件是一款多功能的电子书阅读软件,用户可使用该软件进行首页浏览,搜书,看书等功能。
同时,在注册拥有个人账号后,可对电子书进行评论,或与其他用户进行交流,设置个人资料。
该软件是一款应用型的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,在数据库中创建了几张数据表。 在建设网站系统或者软件之前,我们必须对系统所用到的数据进行大致的分. . .
类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数 Book表(用来存放书籍,如表4-1): 字段名称 数据类型 条件约束 bid integer primary key bpath varchar(255) not null 表 4-1 书籍数据表 Bookmark表(管理书签,如表4-2): 字段名称 数据类型 条件约束 Bmid Integer primary key Bpath varchar(50) not null Bmname varchar(50) not null bmoffset Integer not null msavetime varchar(20) not null 表 4-2 书签数据表 User表(用户数据,如表4-3): 字段名称 数据类型 条件约束 Userid Integer primary key username varchar(50) not null password varchar(50) not null telephone varchar(20) not null 表 4-3 用户数据表 Nearlyread表(最近阅读,如表4-4): 字段名称 数据类型 条件约束 Bookid Integer primary key bookname varchar(50) not null bookreadtime varchar(20) not null 表 4-4 最近阅读数据表 Down表(下载,如表4-5):: 字段名称 数据类型 条件约束 . . .
Downid Integer primary key Downuser varchar(50) not null downtime varchar(20) not null 表 4-5 下载数据表 . . .
5.4.1 获取sd卡上的txt文本 由于一个Android模拟器或者是一个手机客户终端上只会配置一个sdcard,所以一步移动设备上有各种各样的应用App,而且各种App都可能会由数据或者文件存储到移动设备的sdcard上,故而有各式各样的文件类型是该款软件不需要的。也是用户选择本款软件时所不需要的信息文件,于是通过构造一个过滤式的方法让软件只接受来自sdcard上的TXT格式的文本文件。该方法是先通过判断是否存储路径是sdcard,通过getRecordFiles()方法过滤掉其他无用文件,将剩余的TXT文件放置集合AirrayList中,然后通过Android的空间Listview将其目录结构文件给显示出来。代码如下: private void getRecordFiles() { recordFiles= new ArrayList(); if (isSdcard) { File files[] = txtDir.listFiles(); if (files != null) { for (int i = 0; i < files.length; i++) { if (files[i].getName().indexOf(".") >= 0) { /* 只取.txt文件 */ String file = files[i].getName().substring(files[i].getName().indexOf(".")); if (file.toLowerCase().equals(".txt")) recordFiles.add(files[i].getName()); } } } } } . . .
图5-1 文件过滤流程图 5.4.2 长按选项删除
可能在漫长的使用软件生活中,用户会在sdcard里面积累十分多的TXT文件数量,所以这里提供一个删除功能供用户删除一些很久不用的文件。该功能通过获取到Android控件ListView上每一条Item的长按事件进行绑定事件监听,通过该行为进行功能描述,通过获取系统对于sdcard里面文件的操作权限来对于sdcard里面的TXT文件进行删除。下面是删除的方法delFile()的部分代码实现: public void delFile(String filePathAndName) { try { String filePath ="/sdcard/"+filePathAndName; filePath = filePath.toString();
开始 获取文件
TXT文件?
过滤
存放至集合
是 否
获取文件名 . . .
java.io.File myDelFile = new java.io.File(filePath); myDelFile.delete(); } catch (Exception e) { Toast.makeText(this, "删除文件操作出错", 1000).show(); e.printStackTrace(); } } 5.4.3 阅读文本界面的实现
这是该款软件最基本也是最重要的功能——对于TXT文本文件的可视化读取。由于软件中对于sdcard里面的文件的读取可以是从各种各样的界面上获取要读取的TXT文件资源,比如可以从本地管理列表直接读取,也可以从最近阅读列表读取,或者是从阅读界面来读取该文本的书签从而读取文本文件的某一段。 所以,通过Android的Intent(意图方式)传递数据,数据包括了实现本界面的Activity类名,也包括了要阅读文本的书名,还有就是要读取文件的开始页码比例。如果是非进度跳转功能,或者是书签的功能则默认进度读取开始页码也第一页。而这些数据则通过封装到某个对象中,用bundle传递给Intent,再通过Intent转发数据。以下便是通过BitmapFactory工厂封装了一些绘制阅读背景的方法的部分代码实现: mPageWidget.setBitmaps(mCurPageBitmap, mNextPageBitmap); mPageWidget.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent e) { boolean ret=false; if (v == mPageWidget) { if (e.getAction() == MotionEvent.ACTION_DOWN) { mPageWidget.abortAnimation(); mPageWidget.calcCornerXY(e.getX(), e.getY()); pagefactory.onDraw(mCurPageCanvas); if (mPageWidget.DragToRight()) { try {