android平台解析epub格式的书籍信息
2013-07-22 17:28
453 查看
转自:http://ap100.sinaapp.com/?p=21
android下解析epub格式书籍的相关资料不多,查了很久找出了一些相关资料,找到了一个epublib包,
Epublib开发android的主页:http://www.siegmann.nl/epublib/android
相关jar包下载:https://github.com/downloads/psiegman/epublib/epublib-core-latest.jar
http://www.slf4j.org/android/slf4j-android-1.6.1-RC1.jar
在线API:http://www.siegmann.nl/static/epublib/apidocs/
具体的书籍信息提取代码如下:
说明:epub格式的书籍其实就一个zip压缩包,可以将其后缀名改为.zip然后解压缩后查看文件目录。
遇到的问题:
在获取书籍封面图片的时候通过epub主页提供的方法
中book.getCoverImage()得到的对象为null,查看解压后的文件后发现很多epub格式的书籍中都没有将封面图片的信息放到<metadata>标签下的cover标签中。
解决办法:通过book.getResources()获得Resources对象,然后通过方法getById("cover")获得Resource对象,这样就可以取到封面图信息了。
程序运行截图:
QQ:852041173
谭东
android下解析epub格式书籍的相关资料不多,查了很久找出了一些相关资料,找到了一个epublib包,
Epublib开发android的主页:http://www.siegmann.nl/epublib/android
相关jar包下载:https://github.com/downloads/psiegman/epublib/epublib-core-latest.jar
http://www.slf4j.org/android/slf4j-android-1.6.1-RC1.jar
在线API:http://www.siegmann.nl/static/epublib/apidocs/
具体的书籍信息提取代码如下:
package com.zyj.ui; import java.io.IOException; import java.io.InputStream; import nl.siegmann.epublib.domain.Book; import nl.siegmann.epublib.domain.Metadata; import nl.siegmann.epublib.domain.Resource; import nl.siegmann.epublib.epub.EpubReader; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends Activity { /** Called when the activity is first created. */ private TextView bookInfoText; private ImageView coverImage; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bookInfoText = (TextView) findViewById(R.id.bookInfoText); coverImage = (ImageView) findViewById(R.id.coverImage); try { InputStream is = getAssets().open("timefriend.epub"); Book book = new EpubReader().readEpub(is); Metadata metadata = book.getMetadata(); String bookInfo = "作者:"+metadata.getAuthors()+ "\n出版社:"+metadata.getPublishers()+ "\n出版时间:" +metadata.getDates()+ "\n书名:"+metadata.getTitles()+ "\n简介:"+metadata.getDescriptions()+ "\n语言:"+metadata.getLanguage()+ "\n\n封面图:"; bookInfoText.setText(bookInfo); nl.siegmann.epublib.domain.Resources ress = book.getResources(); Resource res = ress.getById("cover"); byte[] data = res.getData(); Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length); coverImage.setImageBitmap(bitmap); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
说明:epub格式的书籍其实就一个zip压缩包,可以将其后缀名改为.zip然后解压缩后查看文件目录。
遇到的问题:
在获取书籍封面图片的时候通过epub主页提供的方法
中book.getCoverImage()得到的对象为null,查看解压后的文件后发现很多epub格式的书籍中都没有将封面图片的信息放到<metadata>标签下的cover标签中。
解决办法:通过book.getResources()获得Resources对象,然后通过方法getById("cover")获得Resource对象,这样就可以取到封面图信息了。
程序运行截图:
QQ:852041173
谭东
相关文章推荐
- android平台解析epub格式的书籍信息
- android平台解析epub格式的书籍信息
- android平台解析epub格式的书籍信息
- android平台解析epub格式电子书
- android平台解析epub--epublib
- android 解析json数据格式
- Android平台——解析XML数据
- 爬取带ajax的网页信息,需要将java script里的内容解析成json的格式
- android实现json数据的解析和把数据转换成json格式的字符串
- [原创文章] iOS和Android平台下地理位置信息带来的个人隐私问题
- Android平台的信息推送实现
- Android逆向之旅---解析编译之后的Dex文件格式
- Android JSON数据格式解析
- 我的Android进阶之旅------>Android获取服务器上格式为JSON和XML两种格式的信息的小程序
- Android平台中应该如何获取音乐文件的信息
- Android平台基于Pull方式对XML文件解析及写入
- android 解析json数据格式
- Android上解析Json格式数据(一)
- android:通过url向网络端获取json格式数据并解析显示
- android-shareSDK解析&自定义分享UI&分享到指定平台。