一种基于Android平台的小说阅读器的制作方法

文档序号:19250030发布日期:2019-11-27 20:05阅读:766来源:国知局
一种基于Android平台的小说阅读器的制作方法

本发明涉及移动平台应用开发领域,主要涉及一种基于android平台的小说阅读器。



背景技术:

目前,由于智能手机的大规模普及和迅猛发展,智能手机已成为日常生活中不可或缺的一部分。android系统是免费开源移动操作系统,开发门槛较低;ios系统虽然是封闭系统,但用户基数很大,用户体验也较好。基于上述平台的小说阅读类手机软件层出不穷,但是此类小说阅读器普遍存在功能单一、广告较多、流畅度较低、联系客服不方便、用户体验较差等弊端。

cn104484105a公开了一种基于android平台的电子书阅读器,主要包括本地书库模块、书籍书签模块、在线书城模块。所述电子书阅读器支持本地阅读和在线阅读。该电子书阅读器功能较为单一,不具备网上搜索在线书城里未收录的书籍功能,不具备推荐小说功能,不具备语音朗读小说功能,不具备第三方账号登录功能,也不具备观看电视直播功能;另外该电子书阅读器不具备联系在线客服功能,如果电子书阅读器出现问题,用户无法联系客服以获得解决方案。

cn107766034a公开了一种ios平台的杂志阅读软件的设计与实现,将阅读器划分为管理模块和阅读模块两部分,其中管理模块部分完成了对杂志展示和杂志下载的管理,阅读模块则侧重于对系统资源的合理分配和利用,该模块完成了对杂志数据的展示,同时实现了对内存的合理利用和管理。虽然文献2与文献1的软件运行平台不一致,而功能存在一定的类似性,文献2偏重于杂志阅读功能,但不具备在线书城功能,同时也存在功能较单一、无法听书、不具备推荐小说功能、不具备观看电视直播功能、不具备第三方账号登录功能、无法在线联系客服等弊端。



技术实现要素:

发明目的:为了克服现有技术中存在的不足,本发明提供一种基于android平台的小说阅读器,本发明采用的技术方案为:

一种基于android平台的小说阅读器,其特征在于:包括在线书城模块、小说阅读模块、语音朗读模块、搜索模块、个人中心模块、视频播放模块、即时通讯模块和天气预报模块;

所述在线书城模块展示书籍,供用户选择购买阅读或直接阅读;所述小说阅读模块显示并调整小说文字内容;所述语音朗读模块识别小说文字内容并转化为语音输出;所述搜索模块提供关键字搜索功能,并将搜索结果显示于用户界面;所述个人中心模块包括但不限于账号管理、第三方登录、查看本地书籍、问题反馈、设置密码、播放视频和联系客服子模块;所述视频播放模块用于播放本地视频或网络视频;所述即时通讯模块实现用户与人工客服或者智能客服机器人的及时通讯功能;所述天气预报模块通过定位系统获取用户位置,联网获取所述用户位置的天气情况并将结果显示于用户界面。

进一步地,所述在线书城模块界面包括一级界面和二级界面;所述一级界面包括顶部子标签栏和底部子标签栏,每个子标签栏都嵌套设置一个二级界面,所述二级界面包括若干子链接,显示小说具体信息;所述一级界面还包括侧滑菜单栏,所述侧滑菜单栏包含但不限于“天气预报”、“我的书架”、“我的账户”、“问题反馈”、“电视直播”、“密码设置”和“分享”7个菜单选项;所述二级界面还包括评论模块,用于用户交流评论。

进一步地,所述小说阅读模块中嵌套设置有语音朗读模块,并且包括若干可以调节小说文字内容的子功能模块;所述子功能模块包括但不限于背景切换、设置字体大小、缓存小说、小说目录。

进一步地,所述个人中心模块中嵌套设置有视频播放模块、即时通讯模块以及天气预报模块;所述个人中心模块还包括:“点击登录”、“我的书架”、“本地文章”、“我的账户”、“问题反馈”、“密码设置”、“电视直播”和“联系客服”8个子菜单选项。

进一步地,所述搜索模块包括输入模块和结果显示模块;所述搜索模块在获取输入模块的待搜索信息后联网获取相似结果,并将结果传输至结果显示模块。

有益效果:本发明提供的基于android平台的小说阅读器具有以下优点:

(1)操作界面友好简单,用户学习成本低,用户体验较好;

(2)具备推荐小说功能,也可通过关键字在网上搜索在线书库未收录的书籍并下载;

(3)具备语音朗读小说功能,可自由选择阅读或听书,使用方便;

(4)集成天气预报和视频播放(电视直播)功能,可替代同类功能软件,减少手机内存资源占用;

(5)具备第三方账号登录功能;

(6)当出现软件运行或使用问题等异常情况时,可通过联系客服功能获取解决方案;

附图说明

图1为本发明功能模块示意图。

具体实施方式

下面结合附图对本发明作更进一步的说明。

如图1所示的一种基于android平台的小说阅读器,包括在线书城模块、小说阅读模块、语音朗读模块、搜索模块、个人中心模块、视频播放模块、即时通讯模块和天气预报模块。

在线书城模块界面包括一级界面和二级界面两部分;其一级界面上方为“精选”、“男频”、“女频”等3个顶部标签栏,下方为“书城”、“分类”、“榜单”、“搜索”、“我的”等5个底部导航标签栏,所有标签栏都可点击选择。“精选”、“男频”、“女频”3个顶部标签栏是通过嵌套运用viewpager控件和tablayout控件构建。viewpager控件可以添加fragment和滑动动作,同时为了防止手势滑动,自定义viewpager控件并重写scroll方法,设定返回值为false,目的是阻止viewpager产生滑动动作。tablayout控件能够显示viewpager控件的标题,可以被用户点击,也能跟随viewpager控件的滑动而产生滑动动作。viewpager控件和tablayout控件的嵌套运用需要适配器,需要把3个fragment控件和对应的“精选”、“男频”、“女频”标题添加到相应位置,而适配器也需要继承fragmentpageradaper。

侧滑菜单隐藏在一级界面上,点击菜单按钮或向右滑动即可自动弹出侧滑菜单项,自上向下分别为“天气预报”、“我的书架”、“我的账户”、“问题反馈”、“电视直播”、“密码设置”和“分享”等7个菜单选项。“天气预报”选项用于激活天气预报模块显示用户所在地的实时和未来七天内天气变化情况。其余6个选项也是个人中心界面中的功能选项,在侧滑菜单中设置是为了能够方便快捷获取到常用功能的点击事件。

一级界面中部从上到下依次显示为小说封面轮播图和“主编推荐”、“火热推荐”、“潜力推荐”、“新书抢先”等4个二级界面标题,轮播图和4个标题都可点击选择,点击后可进入相应的二级界面。二级页面本质上是activity组件,通过使用listview控件、gridview控件与scrollview控件嵌套构建。为了避免由于嵌套而出现的滑动冲突,重写了listview控件和gridview控件的onmesure方法,将这2个控件的长度固定使之无法产生滑动动作,而能够产生上下滑动的只有scrollview控件。每个二级界面都可显示小说内容介绍、书籍评论、推荐小说、版权信息,并包括“追更新”和“开始阅读”2个按钮。“追更新”按钮把在线书籍的信息保存在本地数据库中,使用androidxutils3.0框架操作本地数据库。点击“开始阅读”按钮进入阅读小说界面,其中小说评论是通过使用circlerview控件显示评论者的圆形头像,通过使用listview控件显示更多评论者的评论内容。

点击评论者的头像或评论内容进入评论者界面。评论者界面通过使用recyclerview控件实现,其内容主要包括当前评论内容和更多评论者对于当前评论的意见和看法。该界面通过使用pullrefreshview控件并重写该控件的baseheaderview(下拉刷新)和basefootview(上拉加载更多)2个方法实现上拉加载更多内容功能。由于该界面数据量有可能过大,如果全部同时显示容易造成oom(内存溢出)异常,因此使用上拉加载更多功能可以使数据逐步展示,避免程序崩溃,保证用户良好体验。

在二级界面上点击任何一部推荐小说即可进入推荐小说界面,显示的内容是这个小说的介绍、评价和更多小说的推荐,也具备上拉加载和下拉刷新功能。这两个功能通过调用recyclerview控件的headlistener(上拉加载)接口和footlistener(下拉刷新)接口实现。具体实现方法是重新获取需要加载的接口并写到当前位置,从而可以获取到下一个页面的内容。

在一级界面上点击“分类”底部导航标签可进入分类页面,包括玄幻、都市、女生爱读、男生爱读等。显示分类内容是利用已添加2个radiobutton按钮的radiogroup控件和listview控件配合使用实现。点击页面上方可切换背景图,背景图为.9.png格式图片。点击选择小说类型后可进入详细展示页面,该页面具有上拉加载、下拉刷新的效果,每一页只展示20条数据,可点击进入查看小说详情。

在一级界面上点击“榜单”底部导航标签可进入排行榜界面,通过使用scrollview嵌套线性布局把整个榜单全部显示出来,主要包括“男生人气榜”、“男生热搜榜”、“男生完本榜”、“女生人气榜”、“女生热搜榜”、“女生完本榜”等6个分榜单。在排行榜界面上可点击进入并查看任意一个分榜单的详细内容,即每个分榜单的前1000位小说标题及内容简介,在这个界面上可继续点击进入每本小说详细介绍界面。

2.小说阅读模块

小说阅读模块主界面用于显示小说文字内容。小说的每个章节均为1个接口,由于每个章节的文字内容的长短都不同,即item属性不同,因此利用recyclerview控件显示文字内容。该控件的item的点击和长按事件都可以激活显示该界面的菜单按钮。菜单按钮为“背景切换”、“设置字体大小”、“缓存小说”、“小说目录”,每个按钮的功能利用popupwindow实现。此外,在界面右上角集成“懒人听书”(语音朗读)按钮。点击“背景切换”按钮可以切换选择已保存的8张背景图片,并且可以通过利用sharedpreferences类保存图片id的方式把已选择的背景图片保存到本地,以后再次打开这个界面的时候将会自动获取已选择的背景图片并显示。从服务器下载的小说原始内容需要经过一定的处理后才能显示,小说阅读模块会自动识别原始内容中的某些特殊符号、换行符等并自动替换,并且显示每一段文字开头时会自动空两格,也可根据textview控件的属性自动调整字距、行距的大小。

“设置字体大小”功能是调用recyclerview的适配器中内部类实现的。首先在内部类中将与内容显示相关的textview控件设置为全局变量,然后在内部类的方法中设置字体大小,最小为12sp,最大为28sp,默认为16sp。设置完成后使用sharedpreferences类保存到本地。

“缓存小说”功能需要使用本地数据库实现。为了不占用主线程能够在后台下载小说,利用异步加载方式下载小说,下载进度以百分比显示。为了保护小说作者知识产权,已下载的小说内容需存放在本地数据库中,而且必须通过使用androidxutils3.0对已下载的小说进行操作。因此由于文件格式的限制,用户无法直接对已下载的小说内容进行读写操作。

“小说目录”功能利用android系统原生dialog控件实现。整部小说的目录有1个单独接口,整个小说目录以列表的形式在dialog控件中显示,可以显示当前正在阅读的章节,用户也可以重新定位到想要阅读的章节。

3.语音朗读模块

在小说阅读模块主界面点击“懒人听书”按钮激活语音朗读模块。语音朗读模块利用dialog控件以列表形式展示已阅读的小说章节标题。由于语音朗读模块内部集成了离线语音库,因此可以在与网络断开连接的情况下语音播报已缓存到本地数据库的小说文字内容。

4.搜索模块

搜索模块界面采用相对布局形式,整个界面通过使用listview控件、gridview控件与scrollview控件嵌套构建。搜索框处于界面头部位置,搜索框由edittext控件和背景图片构建。为了避免多控件同时控制滑动动作而产生滑动动作冲突,listview控件和gridview控件均为自定义并重写onmesure方法,从而固定这2个控件的宽度和高度,从而只能使用scrollview控件产生上下滑动;同时搜索框还能一直处于头部位置,不会随着scrollview控件的滑动而隐藏。

用户可以在搜索框中填写需要搜索的内容。搜索框具备1个数据接口,可以从用户输入的搜索内容中获取搜索关键字,再通过访问网络查找与该关键字相关的所有小说,最后返回相关小说标题和id。搜索实现原理是首先监听edittext控件,即在用户输入搜索内容后自动调用该接口去获取用户所需要的信息;其次显示搜索内容,即在自定义popupwindow中通过使用listview控件把从网上获取到的小说标题显示出来。如果发生popupwindow的点击事件则返回到主线程,同时在主界面上edittext下方显示相关内容。在实例化当前popupwindow时需要传输所监听到的点击事件和搜索内容,当用户点击进入下个界面时,程序将调用dismiss方法,使当前popupwindow自动消失。

5.个人中心模块

个人中心模块主界面采用scrollview控件嵌套构建的线性菜单式布局,自上向下分别为“点击登录”、“我的书架”、“本地文章”、“我的账户”、“问题反馈”、“密码设置”、“电视直播”和“联系客服”等8个菜单选项。“点击登录”可实现第三方账号(qq账号)登录功能。qq账号登录流程是先调用qq登录api接口,产生回调方法并获取用户token值,然后再通过token值获取用户账号信息。由于用户账号信息以map(键值对)方式保存到data中,因此在qq登录时需要使用sharedpreferences将用户账号信息保存到本地数据库。由于本地数据库中键与值是一一对应的,在下次调取时可根据当前键去获取到唯一对应值,因此用户再次登录时还可以使用上次登录信息。如果用户登录失败,将会弹出错误信息提示框。

当用户登录成功时,可以点击进入“我的书架”。“我的书架”界面用于显示已经下载到本地数据库的小说。用户可以把在线书城中的小说点击“追更新”后下载保存到本地数据库中。通过使用androidxutils3.0操作数据库,把已下载小说的图片、名字、id从数据库中提取出来,再通过使用gridview控件列表显示在界面上。用户可点击之后跳转到小说阅读界面。

“本地文章”界面用于显示存放在本地数据库中已下载文章(包括但不限于小说)。使用androidxutils3.0操作数据库把已下载文章的图片、名字、id从数据库中提取出来,再通过使用gridview控件列表显示在“本地文章”界面上,短按点击可直接进入阅读界面。长按可弹出自定义dialog对话框,提示是否删除该文章,当点击确定时通过使用androidxutils3.0清除所对应的文章内容,此外还有1个返回按钮,点击可退出对话框。

“问题反馈”界面用于发送用户评价和建议。该界面使用edittext控件构建文本输入框,用户可以在文本输入框输入文字总数最多为140个。界面会根据用户已输入的字数实时显示剩余可输入字数,当用户输入字数已达140个后,就无法再输入文字内容。用户确认输入完成后,可将文字内容以短信方式发给客服。

“密码设置”界面用于设置九宫格密码以保护用户隐私。

“电视直播”界面用于调用视频播放模块的电视直播功能。

“联系客服”界面用于调用即时通讯模块联系人工客服或机器人客服,客服可解答相关问题。

6.视频播放模块

视频播放模块框架采用superplayer控制器构建,能够播放电视直播视频,也可播放本地视频。视频播放模块界面通过列表形式dialog对话框展示可选择的卫星电视频道,用户可点击选择不同的卫视频道进入观看电视直播。用户可点击切换到全屏显示电视直播视频。为了避免用户切换到全屏显示电视直播视频后,当前直播视频自动重新开始播放,在mianfest文件中添加activity的属性使全屏显示不会调用activity整个生命周期,用户切换全屏显示也可继续播放当前电视直播视频。

7.即时通讯模块

即时通讯模块用于实现用户与客服的即时通讯(网上聊天)功能。即时通讯模块主界面可实现用户与客服的实时通讯交流功能,用户与客服可相互发送文字、表情、语音、照片等信息。客服分为人工客服和机器人客服,用户可自主选择联系人工客服或机器人客服。如果用户开始不选择客服类型,即时通讯模块默认联系机器人客服。机器人客服根据用户提问的关键词匹配服务器中已存储的文字或表情内容,自动选择匹配程度最高的信息回复发给用户。机器人客服功能通过调用第三方sdk实现。当机器人客服难以解决问题时,用户可再次选择人工客服。

8.天气预报模块

天气预报模块用于显示用户所在地的天气变化情况。天气预报模块先使用谷歌原生locationmanager获取用户的当前准确位置坐标值,然后把位置坐标值送到第三方天气预报api接口中,由天气预报api接口获取当地前一天、实时天气状况以及未来七天的天气变化情况并在界面上显示。

以上所述仅是本发明的优选实施方式,应当指出:对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1