先对应用做一个简单的分析:

1.此应用需要查看一些大容量文档(如网络小说的txt下载文件等),除了需要实现基本的文本绘制以外,还需要考虑到不同尺寸屏幕的大小对显示区域每行文本数量及每页可显示行数的影响。为此我们需要知道显示区域的宽高尺寸,以及当前所用字体的单个字符的宽高属性。根据字符的高度来计算出每页可显示的行数。

Android的画笔工具为我们提供了获取FontMetrics对象的方法,用于获取当前字体的各种高度尺寸,这里我们使用top与bottom来计算其高度。另外画笔工具还提供了measureText方法来获取字符串的宽度,用来控制每行显示的字符;

2.开启一个服务来加载文件,每次载入4K的文字;因为需要载入的文件较大,所以可以考虑先载入一部分显示然后在后台继续载入数据,或者是只载入部分数据,当需要时再继续载入后续的数据。

3.需要实现翻页或者上下滑动显示的操作。目前先实现翻页操作。

4.需要能够调整字体大小,大小调整后需要重新计算载入的数据。 目前只提供三种固定尺寸。


程序设计:

1.启动一个Activity,实现一个简单的布局,第一版实现打开一个固定的APP资源文件;后续需要扩展可打开文件管理器中的文档甚至是网络上的文档。

2.我们还需要一个SurfaceView用来显示文本,另外还需要绑定一个后台服务来加载文本文件。

3.设计两到三个文字缓冲区,用于循环加载数据。

4.监听按键及触摸屏操作,用来实现文本的翻页操作。

5.实现一个设置菜单,用来改变文本的字体大小、屏幕亮度的选择、显示背景颜色的调整等功能(这部分为扩展功能,后续再实现)。