Android上展示word、excel、pdf、ppt
每日推薦
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
(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會對平台上的人才和企業進行嚴格篩選,讓「最好的人才」和「最好的公司」相遇。
※推薦幾個你應該知道的Studio插件
※仿樂視LIVE App主界面的TabLayout
TAG:鴻洋 |