图4.2 用户在阅读窗口时的操作流程图
当读者打开阅读窗口的时候,刚开始阅读控制模块会根据读者上次退出软件时的位置来决定载入txt文本的初始位置,接着在参考手机屏幕尺寸与文字的大小来决定一页能有多少个文字。并获得文字的长度,然后读取对应长度的字符并在这个基础之上生成与上一页和下一页内容的bitmap图片。读者可以通过用手触摸屏幕来进行相关操作,点击屏幕的左下方是翻到前面一页,点击屏幕的右下方是翻到后面一页。
4.2 设置模块实现
4.2.1 设置字体大小功能的实现
本次设置模块中的调节字体大小选项和选择书签选项的设计大体上相同,都是用java代码来设置布局菜单控件的摆放方式。在点击小号字体、中号字体或大号字体后,假如现在使用的字体和将要改用的字体一样是,就不进行操作,否则就把字体的大小与中英文间距进行重新赋值,接着重新绘制显示页面。
当字体的大小发生改变后,书签中页数的更新和HashMap中存放数据的更新。其中涉及的方法主要有updataBookMarkAndHashMap方法和drawVirtualPage方法。
a.updataBookMarkAndHashMap方法字体大小发生改变后负责更新书签与HashMap。首先判断数据库中是否存在当前这本书的书签,如果存在书签,则取出当前这本书的所有的书签,记录当前每条书签对应的CURRENT_LEFT_START的值;如果不存在当前书的书签时,将当前的页数和左上点的索引值归零,并清空HashMap中的数据,重新绘制到当前读
到的文本处,并将每一页的信息放入HashMap。
b. drawVirtualPage方法是字体大小变化后,书签和HashMap更新过程中,虚拟绘制主界面中每一页信息,并且为下一页的Left_Start的值赋值的方法。
4.2.2 更换背景图片以及设置字体颜色功能的实现
(1)更换背景图片功能的实现
a. 为了让选项更具有观赏性,对选项中的按钮设置个略缩背景图,让用户能够更直观的选着自己想要的背景图片。
b. 将按钮添加监听,使点击按钮后,可以有效的进行背景图片更换的操作。
c. 设置要更换的背景图片,并设置好图片的属性,通过工具类中PicLoadUtil方法来实现图片的大小自动适应屏幕。
d. 重新绘制左右两侧背景图片上的文字。
(2)设置字体颜色功能的实现
a. 为了使菜单栏看上去更加美观,为菜单栏中的按钮设置背景图,同时背景图与要设置字体颜色一致,为用户提供参考。
b. 将按钮添加监听,使点击按钮后,可以有效的进行阅读窗口字体颜色的重新设置。
c. 完成字体颜色设置,返回到当前阅读窗口继续阅读。
4.2.3 音乐播放功能的实现
(1)先创建总的LinearLayout,定义其容布置方向以及位置,并为其添加背景图片。接着创建放置标题的LinearLayout,定义其内容不知方向以及位置,并为其添加TextView设置了文字大小与内容。将曲目名字存入到ListView中,并将ListView添加到LinearLayout中。
(2)为了实现音乐播放功能,将曲目导入ListView,为其添加监听,同时实现控制音乐播放与停止的功能。
(3)如果选择音乐一时音乐播放器为空或正在播放音乐二,则更改播放音乐一;如果选择音乐一时音乐播放器正在播放音乐一,则停止播放,最后返回到当前阅读的窗口。
4.3 书签功能模块实现
(1)添加书签功能的实现
在本设计的书签功能中有许多Dialog,编写自定义的Dialog需要定义一个继承Dialog的类,这个类中确定了将要开发类的布局文件,规定了Dialog的属性,吧布局文件和java代码有机的联系起来。其中styles.xml文件设置了Dialog的背景