国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 打開網絡上pdf文件

2019-12-12 03:12:07
字體:
來源:轉載
供稿:網友

之前寫過一篇Android打開本地pdf文件的文章,最后總結的時候說,后面一定要拓展庫,讓其也能打開網絡的的pdf文件。今天終于可以兌現承諾了。frok一份代碼https://github.com/JoanZapata/android-pdfview,源碼地址:http://xiazai.VeVB.COm/201704/yuanma/android-pdfview-master_jb51.rar,開始改造一番。

1.基本思路:

打開網絡pdf 思路整體還是來源與圖片的加載。

android中加載網絡圖片的框架有很多個。如image-laoder, fresco、glide等,首先都是從內存中找圖片,如果內存中沒有,接著從本地找,本地沒有在從網絡下載。

android中加載pdf也是類似,首先從本地找pdf文件,如果本地存在該pdf文件,直接打開,如果本地不存在,將該pdf文件下載到本地在打開。

下載文件用到了retrofit2的庫,已經封裝到android_pdf中了。

2.依賴android_pdf庫方法

2.1 在項目的gradle中增加如下代碼:

compile 'com.lidong.pdf:android_pdf:1.0.1'

2.2 一句代碼就可以加載網絡pdf。

pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName);   //設置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)
  1. OnPageChangeListener onPageChangeListener :翻頁回調
  2. OnLoadCompleteListener onLoadCompleteListener:加載完成的回調
  3. OnDrawListener:頁面繪制的回調
  4. String fileUrl : 文件的網絡地址
  5. 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地址"); } /** * 獲取打開網絡的pdf文件 * @param fileUrl * @param fileName */ private void displayFromFile1( String fileUrl ,String fileName) { showProgress(); pdfView.fileFromLocalStorage(this,this,this,fileUrl,fileName); //設置pdf文件地址 } /** * 翻頁回調 * @param page * @param pageCount */ @Override public void onPageChanged(int page, int pageCount) { Toast.makeText( MainActivity.this , "page= " + page + " pageCount= " + pageCount , Toast.LENGTH_SHORT).show(); } /** * 加載完成回調 * @param nbPages 總共的頁數 */ @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); } /** * 關閉等待框 */ private void hideProgress(){ LoadingUIHelper.hideDialogForLoading(); }

代碼地址

效果實現:

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江北区| 万安县| 溧水县| 东城区| 新闻| 湘乡市| 礼泉县| 建湖县| 峡江县| 上蔡县| 雅安市| 攀枝花市| 大姚县| 江安县| 枣庄市| 蓬安县| 焦作市| 北京市| 武平县| 龙陵县| 永春县| 于田县| 丽水市| 新田县| 乐安县| 浦县| 仁怀市| 德江县| 廉江市| 江安县| 普陀区| 察哈| 宝应县| 沙坪坝区| 简阳市| 靖远县| 淮安市| 临沭县| 札达县| 泸水县| 台前县|