专栏名称: 鸿洋
你好,欢迎关注鸿洋的公众号,每天为您推送高质量文章,让你每天都能涨知识。点击历史消息,查看所有已推送的文章,喜欢可以置顶本公众号。此外,本公众号支持投稿,如果你有原创的文章,希望通过本公众号发布,欢迎投稿。
目录
相关文章推荐
51好读  ›  专栏  ›  鸿洋

Android上展示word、excel、pdf、ppt~

鸿洋  · 公众号  · android  · 2017-09-27 07:30

正文

每日推荐



MVP+Dagger2.android+Retrofit+RxJava2+Glide+Realm。 单Activity+多Fragment 架构,fragment back 处理。


一位经常留言的老朋友的项目,值得学习~


https://github.com/yangxiaobinhaoshuai/NewGank


本文作者


作者:钟离四郎

链接:http://www.jianshu.com/p/3f57d640b24d

本文由作者投稿推送。


笔者最近两个项目里头都有需要展示文件的功能,于是做了一番调研,发现asce1885给出一份方案,不过都是关于pdf的展示:


http://www.jianshu.com/p/1bf49af6584d,显然不符合笔者的要求,笔者的项目里需要展示的文件格式并不单一,后来经过一番搜索最后敲定使用腾讯的Tbs,可以在应用内打开各类型文件。不过这过程也有点坑。


什么是Tbs


腾讯浏览服务(TBS,Tencent Browsing Service)整合腾讯底层浏览技术和腾讯平台资源及能力,提供整体浏览服务解决方案。


TBS更多详细的介绍,请移步:

https://x5.tencent.com/tbs/


关于官网接入的坑


关于接入Tbs服务官网给出了接入文档:https://x5.tencent.com/tbs/guide/sdkInit.html,很搞笑的是我找了很久也没有发现具有打开文件能力demo工程,官网sdk里头的demo工程居然都没有展示文件功能,后来我发现官网论坛里有不少朋友留言,不知如何使用SdK打开文件,因此本文主要将的是如何使用SDK打开文件,以及对sdk打开文件的功能的简单封装。


如何接入


参考:https://x5.tencent.com/tbs/guide/sdkInit.html


1.第一步


下载 SDK jar 包放到工程的libs目录下



2.第二步


x5暂时不提供64位so文件,为了保证64位手机能正常加载x5内核,进行以下两项设置:


(1)打开对应module中的build.gradle文件,在文件的android{}中的defaultConfig{}里(如果没有defaultConfig{}则手动添加)添加如下配置: ndk{abiFilters "armeabi"}



(2)添加对应目录下的liblbs.so文件



如何展示文件


显示文件关键代码,例如:



TbsReaderView是封装的用于展示文件的View,继承与FramLayout,首先调用mTbsReaderView.preOpen(getFileType(mFile.toString()), false)进行文件打开之前的初始化工作,然后调用的mTbsReaderView.openFile(localBundle)打开文件,localBundle里包含有文件在本地的路径,加载文件步骤十分简单,其中的加载任务全部交由tbs内核完成。


简单封装


有时候可能需要加载网络文件,但是tbs目前是暂时不支持在线预览的,因此是需要使用网络将文件下载下来之后在展示,因此笔者这里对获取文件路径这一部分进行封装,如下:



TbsReaderView是上面的SuperFileView2的子View,完整使用如下:



效果图


展示doc文件



展示Excel文件




展示pdf文件



展示ppt文件



展示txt



源码

https://github.com/ZhongXiaoHong/superFileView


之前刚好有人后台问我有展示pdf等的需求,希望本篇文章对你能有所帮助。此外,相信有很多朋友接触过类似的需求,不妨留言给大家分享下~



优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。

100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。


扫描下方二维码,注册 100offer,谈谈你对下一份工作的期待。一周内,收到 5-10 个满足你要求的好机会!


如果你有想学习的文章直接留言,我会整理征稿。如果你有好的文章想和大家分享欢迎投稿,直接向我投递文章链接即可。

推荐文章
互联网er的早读课  ·  被忽略的交互设计本质
8 年前