开源能翻译英文的Android阅读器

本文介绍了作者开发的Android阅读器——Filter阅读,主要用于阅读英文书籍。文章详细讲解了实现过程,包括读取书籍文件、点击单词选择翻译、文件分页和记录位置等功能的实现方法。同时,提供了开源代码和APK下载链接。
摘要由CSDN通过智能技术生成

Filter阅读是我最近写的一个Android的阅读器,用于看英文的书(中文暂时不支持,会乱码,下一版再改).
本文章由”智障的我”原创,转载注明. http://blog.csdn.net/qq_29854305/article/details/52083648

在这里开源给大家(Android studio的)
源码下载地址:http://pan.baidu.com/s/1bpvAzIv
apk下载地址:http://shouji.baidu.com/software/9736272.html

这里写图片描述这里写图片描述

主要难点有三个
**1,读取书籍文件
2,点击单词选择并翻译
3,文件的分页和记录上次的位置**
一个一个说.

1,读取书籍文件
首先直接调用系统的文件管理器,获取到书籍文件的地址.
这里有一点需要注意.通过文件管理器获取到的地址是File:///+地址格式的.需要我们截取一下.然后就得到了正确的文件地址

然后就是解析文件内容,这里我用的是FileChannel类,也就是文件通道类.

Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。

这个类的好处是效率高,占用少,而且最大读取单个文件可以到2G,还有就是能自由的决定从哪里开始读取(这就解决了记住上次读书位置和跳转的问题).所以我们用这个类

具体代码如下:

public class AnalysisTXTBook extends AnalysisBook {
   
    private RandomAccessFile aFile;
    private FileChannel fc;
    private MappedByteBuffer out;


    public AnalysisTXTBook(String path) {
        try {
            // 这个类是随机读取文件的类 可以从任意位置读文件
            aFile = new RandomAccessFile(path, "rw");
            // 文件通道 直接强行把存储内的文件放到内存中 效率高 最大单个文件能达到2G
            fc = aFile.getChannel();
            //获取所读文件的字符数
            bookLength = aFile.length();
            //映射到MappedByteBuffer上
            out = fc.map(FileChannel.MapMode.READ_WRITE, 0, aFile.length());
            Logger.d("aFile.length():" + aFile.length());
            // 一定要关上
            fc.close();
            aFile.close();
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }


    @Override
    public String getBookContent(int start, int lenth) {
        String s = 
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值