Android 打开网络上pdf文件

Android 打开网络上pdf文件,第1张

概述之前写过一篇Android打开本地pdf文件的文章,最后总结的时候说,后面一定要拓展库,让其也能打开网络的的pdf文件。今天终于可以兑现承诺了。frok一份代码https://github.com/JoanZapata/android-pdfview,源码地址:

之前写过一篇Android打开本地pdf文件的文章,最后总结的时候说,后面一定要拓展库,让其也能打开网络的的pdf文件。今天终于可以兑现承诺了。frok一份代码https://github.com/JoanZapata/android-pdfview,源码地址:http://xiazai.jb51.net/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,fileUrl,filename);   //设置pdf文件地址

2.3对fileFromlocalstorage(this,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)
OnPagechangelistener onPagechangelistener :翻页回调 OnLoadCompleteListener onLoadCompleteListener:加载完成的回调 OnDrawListener:页面绘制的回调 String fileUrl : 文件的网络地址 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,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(); }

代码地址

效果实现:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持编程小技巧!

总结

以上是内存溢出为你收集整理的Android 打开网络上pdf文件全部内容,希望文章能够帮你解决Android 打开网络上pdf文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1146480.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存