之前寫過一篇Android打開本地pdf文件的文章,最后總結(jié)的時候說,后面一定要拓展庫,讓其也能打開網(wǎng)絡(luò)的的pdf文件。今天終于可以兌現(xiàn)承諾了。frok一份代碼https://github.com/JoanZapata/android-pdfview,源碼地址:http://xiazai.jb51.net/201704/yuanma/android-pdfview-master_jb51.rar,開始改造一番。
創(chuàng)新互聯(lián)是一家業(yè)務(wù)范圍包括IDC托管業(yè)務(wù),雅安服務(wù)器托管、主機(jī)租用、主機(jī)托管,四川、重慶、廣東電信服務(wù)器租用,溫江服務(wù)器租用,成都網(wǎng)通服務(wù)器托管,成都服務(wù)器租用,業(yè)務(wù)范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務(wù)公司。
1.基本思路:
打開網(wǎng)絡(luò)pdf 思路整體還是來源與圖片的加載。
android中加載網(wǎng)絡(luò)圖片的框架有很多個。如image-laoder, fresco、glide等,首先都是從內(nèi)存中找圖片,如果內(nèi)存中沒有,接著從本地找,本地沒有在從網(wǎng)絡(luò)下載。
android中加載pdf也是類似,首先從本地找pdf文件,如果本地存在該pdf文件,直接打開,如果本地不存在,將該pdf文件下載到本地在打開。
下載文件用到了retrofit2的庫,已經(jīng)封裝到android_pdf中了。
2.依賴android_pdf庫方法
2.1 在項目的gradle中增加如下代碼:
compile 'com.lidong.pdf:android_pdf:1.0.1'
2.2 一句代碼就可以加載網(wǎng)絡(luò)pdf。
pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName); //設(shè)置pdf文件地址
2.3對fileFromLocalStorage(this,this,this,fileUrl,fileName)的解析
/** * 加載pdf文件 * @param onPageChangeListener * @param onLoadCompleteListener * @param onDrawListener * @param fileUrl * @param fileName */ public void fileFromLocalStorage( final OnPageChangeListener onPageChangeListener, final OnLoadCompleteListener onLoadCompleteListener, final OnDrawListener onDrawListener, String fileUrl, final String fileName)
3.使用android_pdf庫方法
3.1寫一個布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.lidong.pdf.androidpdf.MainActivity"> <com.lidong.pdf.PDFView android:id="@+id/pdfView" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
3.2在MainActivity中加載
import android.graphics.Canvas; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.Toast; import com.lidong.pdf.PDFView; import com.lidong.pdf.api.ApiManager; import com.lidong.pdf.listener.OnDrawListener; import com.lidong.pdf.listener.OnLoadCompleteListener; import com.lidong.pdf.listener.OnPageChangeListener; import com.lidong.pdf.util.FileUtils; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import okhttp3.ResponseBody; import rx.android.schedulers.AndroidSchedulers; import rx.functions.Action1; import rx.schedulers.Schedulers; public class MainActivity extends AppCompatActivity implements OnPageChangeListener ,OnLoadCompleteListener, OnDrawListener { private PDFView pdfView ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pdfView = (PDFView) findViewById( R.id.pdfView ); displayFromFile1("填寫所要打開的pdf地址"); } /** * 獲取打開網(wǎng)絡(luò)的pdf文件 * @param fileUrl * @param fileName */ private void displayFromFile1( String fileUrl ,String fileName) { showProgress(); pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName); //設(shè)置pdf文件地址 } /** * 翻頁回調(diào) * @param page * @param pageCount */ @Override public void onPageChanged(int page, int pageCount) { Toast.makeText( MainActivity.this , "page= " + page + " pageCount= " + pageCount , Toast.LENGTH_SHORT).show(); } /** * 加載完成回調(diào) * @param nbPages 總共的頁數(shù) */ @Override public void loadComplete(int nbPages) { Toast.makeText( MainActivity.this , "加載完成" + nbPages , Toast.LENGTH_SHORT).show(); hideProgress(); } @Override public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) { // Toast.makeText( MainActivity.this , "pageWidth= " + pageWidth + " // pageHeight= " + pageHeight + " displayedPage=" + displayedPage , Toast.LENGTH_SHORT).show(); } /** * 顯示對話框 */ private void showProgress(){ LoadingUIHelper.showDialogForLoading(this,"報告加載中,請等待。。。",false); } /** * 關(guān)閉等待框 */ private void hideProgress(){ LoadingUIHelper.hideDialogForLoading(); }
代碼地址
效果實(shí)現(xiàn):
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持創(chuàng)新互聯(lián)!
當(dāng)前名稱:Android打開網(wǎng)絡(luò)上pdf文件
分享網(wǎng)址:http://muchs.cn/article8/pipgop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、建站公司、網(wǎng)站策劃、網(wǎng)站改版、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)