e-tomcat-5.0.28/webapps目录下新建文件夹txt。
(3) 在txt文件夹下创建文本文件txt_list.txt。
(4) 在txt_list.txt下写入内容。
(5) 根据txt_list.txt的内容,创建文本。
(6) 打开/pache-tomcat-5.0.8/bin目录。
(7) 打开/pache-tomcat-5.0.8/bin目录下的startup.bat。
(8)打开浏览器,在地址栏输入localhost:8088/,效果如图4.2所示:
图4.2 bin目录图
4.2 欢迎界面的实现
本模块主要完成阅读器欢迎界面的渐变效果显示,在进入程序界面时首先调用。该功能的实现主要是通过绘制黑色矩形,然后对其进行平面贴图,并通过不断的更改图片的透明值来实现的。
4.3 主控制类的实现
ReaderActivity类是主要控制程序运行的类,实现了各个界面的有序切换,各个按钮和对话框的监听事件,加载了程序中用到的相关资源,有效地控制了程序的运行。
(1)onCreate方法是程序运行时,进入主界面前调用的方法,在此方法中对程序中用到的相关变量进行赋值,并为相关类创建对象,以方便调用。
(2)onKeyDownf方法是重写父类的onKeyDown方法,当按下不同的键时,此方法设计返回键(4号键)和Menu键(82号键),并且本设计中支持屏幕触控事件和键盘监听事件。
(3)onCreateOptionsMenu方法表示的是程序运行时,用户按下键盘上的Menu键后,显示的找书、书签、自动翻页和设置的按钮选项,当用户按下不同的键后,弹出相应的对话框。
(4)sendMessage方法表示各个界面相互跳转时调用的方法和不同线程之间传递消息的方法。
(5)isWhichTime方法用以判断是否为第一次打开程序,如果是,则程序中的变量值为默认值;若不是第一次打开,则获取上一次打开时设置的值。
(6) saveCurrentData和savePreference方法表示当程序退出、换书和第一次打开一本书时都要想数据库中BookRecord表中插入数据,第一次打开一本书时,向数据库中插入数据是因为,如果表中不存在当前书的信息,则无法存书签。
4.4工具类的设计
(1)Constant类存放了整个设计过程中,大部分类经常用到的常量值,如字体大小、
字体颜色、屏幕的宽和高等。将这些常量值放在一起,不但方便了设计,而且方便管理。
(2)加载文本的工具类TextLoadUtil的设计主要是为文本的读入提供方法。
4.5 阅读界面的实现
ReaderView类主要负责自适应屏、绘制阅读器的主界面、实现键盘和屏幕的触控事件以及实现翻页功能。
(1)surfaceCreated方法主要负责成员变量的初始化工作。
(2)onDraw方法负责标题、广告条、左右页面等图片的绘制。其中广告条的绘制是动态的,在广告条线程中值需要更改图片数据下标志值NUM。
(3)onTouchEvent方法负责处理屏幕触控事件,屏幕触控事件为移动是翻页特效的实现。
(4)drawPage方法负责根据阅读记录对象ReadRecord绘制左右两页面。
图4.3 从用户进入软件到阅读界面时的流程图
图4.4 用户在阅读界面时的操作流程图
当用户进行阅读界面的时候,首先阅读控制模块会根据用户之前阅读到的位置来确定载入电子书文本的起始位置,然后会根据手机终端屏幕大小和字体大小来确定该页应该显示多少文字。在获取文字长度之后,会读取相应长度的字符并以此为基础生成左右相邻两页内容的bitmap图片。用户在阅读的时候可以触摸屏幕的不同位置进行不同操作,左下角是往前翻页,右下角是往后翻页。
4.6 找书功能的实现
找书功能分为在SDCARD中和在网络中找书。
(1)在SDCARD中找书
用户可以将已有的txt格式的书放在SDCARD中,通过本阅读器的在SDCARD中找书的功能将书加载进阅读器进行阅读,具体步骤如下:按下Menu键,在主界面中弹出的选项中选择找书,弹出找书对话框,选中SDCARD,即可根据当前路径获得对应文件数组,并将数组中的所有文件加入到文件列表中,然后再为文件列表添加监听,从而实现在点击某一文件时跳转至对应页面的功能。
(2)在网络中找书
本阅读器不仅提供了在本地找书的功能,而且也支持在网络中找书。具体步骤如下:
当单击在网络中找书的按钮时,调用downTxt方法下载txt文档。
图4.5 用户找书时的操作流程图
4.7 书签功能的实现
(1) 添加书签功能的实现
在本设计的书签功能中有很多漂亮的Dialog,这些Dialog是通过xml文件自己布局的或者是通过Java代码自定义实现的。其中styles.xml文件设置了Dialog的背景图片和标题格式,是设置对话框属性的文件。在完成了输入书签对话框所需要继承的类、布局文件和对话框属性的文件之后,创建了书签输入对话框,并通过onPrepareDialog方法为自定义的输入书签对话框中的按钮添加了监听。
(2) 选择书签功能的实现
选择书签对话框不同于添加书签对话框,是用Java代码实现的。具体的实现步骤如下:
a. 在数据库中取出所有书签的名字和页数的索引值,并分别放入两个数组tempname和temppage中,用来放入书签列表中显示。
b. 用Java代码编写列表对话框,并且为ListView添加内容适配器,将在数据库中取出的书签名称和其对应的页数的索引加入到ListView中。
c. 当单击选择书签对话框中的某一项时,得到当前的页数,根据页数查找HashMap,找到相应的BookMark类的对象,从而知道要跳转到的页的索引值。
d. 当长时间按住选择书签对话框中的某一项时,弹出"是否删除这条记录"的对话框,如果单击"确定"按钮,则会删除这条记录,单击"取消"按钮则不会删除记录。
图4.6 书签功能操作流程图
4.8 设置字体大小功能的实现
字体大小对话框与选择书签对话框的设计基本相同,也是通过Java代码为对话框中控件的摆放形式设置布局。当单击小号、中号、大号字体后,如果当前字体与要变换的字体相同,则不发生变化,否则将字体的大小和中英文间距重新赋值,然后重新绘制当前界面。
字体大小变化后书签和HashMap的更新:
(1) updataBookMarkAndHashMap方法负责字体大小变化后,更新书签和HashMap。
(2) drawVirtualPage方法是字体大小变化后,书签和HashMap更新过程中,虚拟绘制主界面中每一页信息,并且为下一页的Left_Start的值赋值的方法。
4.9 更换背景图片以及设置字体颜色功能的实现
(1)更换背景图片功能的实现
a. 为了使对话框看起来更美观,为对话框中的按钮设置背景图,同时背景图与要设置背景一致,为用户提供参考。
b. 为按钮添加监听,使单击按钮后,可以实现更换阅读内容背景的图片。
c. 设置要更换的图片,并规定图片加载的属性,用到了PicLoadUtil 这个工具类的
方法来实现图片自适应。
d. 重新绘制左右两侧背景图片上的文字。
(2)设置字体颜色功能的实现
a. 为了使对话框看起来更美观,为对话框中的按钮设置背景图,同时背景图与要
设置字体颜色一致,为用户提供参考。
b. 为按钮添加监听,使单击按钮后,可以实现重新设置阅读界面字体颜色。
c. 完成字体颜色设置,返回到当前阅读界面继续阅读。
4.10 音乐播放功能的实现
(1)完成自定义对话框的设计。
(2)将曲目导入ListView,为其添加监听,同时实现控制音乐播放与停止的功能。
(3)当音乐播放器为空或正在播放曲目二,则更改播放曲目一,在为其设置播放模式后,播放曲目,否则是否播放器,最终返回阅读主界面。
第5章 系统测试
5.1 欢迎界面
打开本系统,首先进入的是欢迎界面,效果如图5.1和图5.2所示。
图5.1 欢迎动画界面1
图
上一篇:
软件开发工具论文
下一篇:
试论APP广告在手机中的应用