免费android读书软件有哪些?这几款不花钱也能畅快阅读!

tmyb

得,今天就来聊聊我捣鼓安卓读书软件这点事儿。起初,就是觉得市面上有些读书APP,要么花里胡哨的功能一大堆,我用不上,要么就是广告有点烦人。我就琢磨着,能不能自己整个简洁点的,就纯粹看个书,TXT格式就行,简单方便。

一、最初的念头与准备

一开始就是个想法,说干就干。我寻思着,安卓开发环境我还有,Android Studio打开,新建个项目。这第一步嘛总得先把界面大概构思一下。我想要的就是一个能显示文字的区域,然后可能需要几个按钮,比如打开文件、设置字体大小、背景颜色啥的。

免费android读书软件有哪些?这几款不花钱也能畅快阅读!

布局文件里,核心就是一个TextView,用来显示小说内容。底下,暂时先放几个Button,占个位置,功能后面再慢慢实现。

二、核心功能:加载与显示TXT

这读书软件,最核心的当然是能打开TXT文件并且把它显示出来。这块儿我琢磨了一下,得让用户能选择手机里的TXT文件?行,那就搞个文件选择的功能。安卓里有现成的意图(Intent)可以用,用户选了文件,我拿到文件的路径。

拿到路径后,下一步就是读取文件内容。这个不难,用Java的文件流,FileInputStream 套个 BufferedReader,一行一行地读,然后把所有内容拼接起来,一股脑儿塞到我那个TextView里头。你还别说,这么一搞,文字确实显示出来了! 当时还挺有成就感的。

三、头疼的分页与翻页

文字是出来了,但问题也来了。一本小说好几兆,全塞进去,TextView直接卡死,或者滚动条拉半天。这不行,得实现分页。这个分页可把我给折腾得够呛。

免费android读书软件有哪些?这几款不花钱也能畅快阅读!

一开始我想得简单,不就按字数分嘛比如每500字一页。结果?手机屏幕大小不一样,字体大小一调,全乱套了。有的页显示不全,有的页空一大截。

后来查了些资料,才明白,得动态计算。就是根据TextView的宽度和高度,以及当前的字体大小,用Paint对象的measureText方法,一个字一个字地量,看一行能放多少字,一页能放多少行。这个过程比较繁琐,得不断尝试和调整,确保每一页都尽可能填满,又不超出边界。

分页逻辑搞定后,翻页就好办了。弄两个按钮,“上一页”、“下一页”。点击的时候,根据当前页码,计算好下一页或者上一页应该显示的文本内容,然后更新到TextView上。我还加了个手势滑动翻页,感觉这样更顺手。

四、锦上添花:设置功能

能看书了,能翻页了,接下来就想搞点个性化设置。最基本的就是字体大小和背景颜色了

字体大小,加个设置项,提供几个档位,或者允许用户自己输入。改变字体大小后,分页逻辑得重新计算一遍,这个要注意。

免费android读书软件有哪些?这几款不花钱也能畅快阅读!

背景颜色,预设几种常见的,比如白色、米黄色、淡绿色(护眼模式嘛),再加个夜间模式(黑底白字)。这些设置项的值,我用SharedPreferences给存起来,这样用户下次打开APP,还是他上次的设置,体验会好一些。

我还顺手加了个亮度调节,虽然系统也有,但APP里直接调方便点。

五、后续的完善与思考

捣鼓到基本上一个简易的TXT阅读器算是能用了。我自己试用了几天,看看小说啥的,还行。BUG肯定还是有的,比如某些特殊字符可能会导致计算出问题,或者遇到超大文件时性能还不够理想。

后面还想着,是不是可以支持个EPUB格式?那个格式排版更好看。或者再弄个简单的书架功能,记录下最近看的书和阅读进度。这些都是后话了,得一步一步来。

这回实践过程虽然磕磕绊绊,但从零开始把一个想法变成一个能用的东西,这个过程还是挺有意思的。自己动手,丰衣足食嘛 分享出来,也是给自己做个记录,希望对同样喜欢折腾的朋友有点启发。

免费android读书软件有哪些?这几款不花钱也能畅快阅读!