上一章传送:https://blog.csdn.net/mzy24511cs/article/details/80423719

要做一个Epub阅读器首先要了解一下什么是Epub。(可自行百度)其实说白了Epub就是个压缩包,还是zip格式的。它将阅读需要的相关资源文件按照规定的结构打包在一起。下面我们来看看Epub里有哪些重要文件:

1、ncx文件。这个是Epub的核心文件,其实就是电子书的目录。它其实是个XML文件。用编辑器打开是这样的:

了解到这个就明白了,直接用解析XML或者Html的方法就可以得到它的目录结构。这里我用的工具是Jsoup。

2、Html文件。看到上面图里的src属性了嘛,每一content标签对应的就是一个Html文件。这就像一个静态页,我们可以直接用浏览器打开查看。

3、CSS资源文件和多媒体文件。Html文件里面会用到CSS样式,自定义字体,img、video、audio等标签,这时就需要把这些资源文件也打包进来。

我们打开一个epub文件,它的目录结构大概是这样的:

了解清楚Epub的文件结构和作用后,下一章我们就可以开始构思阅读器的框架和实现逻辑了

下一章传送门:https://blog.csdn.net/mzy24511cs/article/details/80507257

【原创】从头开始,使用安卓系统WebView做一个功能强大的Epub阅读器(二)相关推荐

  1. 【原创】从头开始,使用安卓系统WebView做一个功能强大的Epub阅读器(一)

    之前业务需求要做一个自己专属的Epub阅读器(非标准Epub格式,内嵌多媒体文件,基本上属于Epub3.0标准,但是文件结构并不规范),主要需求如下: 1.首先需要实现一般电子书阅读器的基本功能.翻页 ...

  2. 【原创】从头开始,使用安卓系统WebView做一个功能强大的Epub阅读器(五)

    上一章传送:https://blog.csdn.net/mzy24511cs/article/details/80563448. 这一章专门讲一下阅读器的各种工具栏. 1.背景音乐.这个工具简单,用M ...

  3. 【原创】从头开始,使用安卓系统WebView做一个功能强大的Epub阅读器(四)

    上一章传送:https://blog.csdn.net/mzy24511cs/article/details/80507257. 首先构建阅读器的父容器.用于加载每一章的WebView以及所有的工具V ...

  4. 安卓系统再好用的3款epub阅读器(转载)

    安卓系统最好用的3款epub阅读器 随着互联网时代的发展,我们的生活越来越便利,足不出户就可以得知世界各地的消息. 现如今手机的功能越来越全面,不仅仅是从前的联系朋友,还有各种的手机支付,手机娱乐等功 ...

  5. mac系统上最好用的3款epub阅读器

    mac系统上最好用的3款epub阅读器 在这个快节奏的当下,电脑是我们离不开的工具,有时也可以充当一下娱乐设施.我们对于电脑是使用非常频繁,连平时读书都有很大一部分人是在电脑上阅读电子书. 在电脑上直 ...

  6. 安卓系统最好用的5款epub阅读器

    安卓系统最好用的5款epub阅读器 随着手机功能的增加,手机在日常生活中越来越重要.几乎我们每个人都是24小时手机不离身,在手机端看书也成为了一种趋势. 那么爱看书的你是习惯用手机看电子书,还是看纸质 ...

  7. 安卓手机上最好的3个epub阅读器

    epub格式是一款非常常见的电子书格式,很多手机由于自身不能直接打开epub格式文件或者软件使用感较差而给我们阅读带来困扰.今天小编就为大家介绍3款可以在安卓手机上使用的epub阅读器. 第一款:ne ...

  8. Win系统上最好用的epub阅读器

    Win系统上最好用的epub阅读器 EPUB是一种比较常见的电子书格式,因为它的通用性非常的强,所以受到很大一部分电子书用户的喜爱.刚接触在电脑上阅读epub格式电子书的朋友可能会需要一款阅读器来帮助 ...

  9. 最好的3个安卓epub阅读器

    epub格式是一款非常常见的电子书格式,很多手机由于自身不能直接打开epub格式文件或者软件使用感较差而给我们阅读带来困扰.今天小编就为大家介绍3款可以在安卓手机上使用的epub阅读器. 第一款:ne ...

最新文章

  1. Python MemoryError 问题
  2. linux c数字转字符串函数,Linux常用C函数—字符串转换篇
  3. synchronized关键字原理
  4. python趣味编程入门 迈克 桑德斯_Python趣味编程入门
  5. STM32F4 HAL库开发 -- STM32F407引脚图
  6. JavaScript中错误正确处理方式,你用对了吗?
  7. air java,Java Bean
  8. 嵌入式linux面试题解析(四)——逻辑推理一
  9. go实现区块链[3]-遍历区块链与数据库持久化
  10. c语言编程 排序,C语言编程-9_3 排序
  11. ERROR 1442 (HY000):because it is already used by statement which invoked this stored function/tr
  12. (分治)7617:输出前k大的数
  13. Context 使用不当造成内存泄露
  14. Vector原理与基本使用
  15. 自在服务器虚拟化,新破晓诛仙3单机版16职业商业仿官青罗天界灵境神隐虚拟机一键端GM网单...
  16. 简约创意个人简历求职竞聘PPT模板
  17. 免费FTP资源(比较全)
  18. Unity接入移动MM支付(Android)
  19. Dell 服务器开启虚拟化功能Intel VT-x
  20. 陈彤离职,新浪在门户竞争中将继续被边缘化

热门文章

  1. 下载追踪:如何监测APP的来源渠道数据
  2. 通过ext排查MySQL服务器间歇性卡顿问题
  3. iOS9.x-10.x可以实现永久越狱啦
  4. 微信Android热更新Tinker使用详解(by 星空武哥)
  5. c语言实现灰度图转换
  6. chromedriver 下载与安装方法[转]
  7. android 原生分享文件,Android原生文件分享
  8. 计算机专业进铁路工资待遇,本科生刚进铁路局工资待遇汇总,仅供参考!
  9. 深度神经网络(DNN)Deep Neural Networks 介绍
  10. linux系统虚拟鼠标的实现