##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)

OnPageChangeListener onPageChangeListener :翻页回调

OnLoadCompleteListener onLoadCompleteListener:加载完成的回调

OnDrawListener:页面绘制的回调

String fileUrl : 文件的网络地址

String fileName 文件名称

##3.使用android_pdf库方法

###3.1写一个布局文件

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">

android:id="@+id/pdfView"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>

###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("http://file.chmsp.com.cn/colligate/file/00100000224821.pdf", "00100000224821.pdf");

}

/**

* 获取打开网络的pdf文件

* @param fileUrl

* @param fileName

*/

private void displayFromFile1( String fileUrl ,String fileName) {

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();

}

@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();

}

效果实现:

代码已经奉上,请大家伙给点建议。一起交流(1561281670)

android pdf,GitHub - lidong1665/AndroidPDF相关推荐

  1. android pdfview,Android PDF开发:android-pdfview

    Android PDF开发:android-pdfview Android平台自身没有直接可以阅读和处理pdf的方案,在github上面有一个第三方开源的pdf开发SDK,其主页地址是: https: ...

  2. 开源需自立!Android、GitHub、Apache全线告急!

    作者 | 胡巍巍&伍杏玲 责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 华为四面楚歌,"破窗效应"爆发! 继5月16日美国商务部工业与安全局(BIS)将华 ...

  3. Android pdf转换bitmap保存到本地

    Android pdf转换bitmap保存到本地 PDF转换成图片保存到本地 Android有自带的API提供 首先要把PDF文件下载到本地,下载成功使用 下载就最简单的IO下载都行 例如: try ...

  4. Android使用Github Actions持续集成并自动上传apk到蒲公英App内测分发平台(含证书密码脱敏)

    目录 1.前言 2.Github Actions持续集成 3.上传apk到蒲公英 4.Gradle配合Github Actions的Secret使用 4.1设置Github Actions Secre ...

  5. chrome pdf android,Android PDF阅读器 (基于谷歌平台的Adobe Reader)

    Android PDF阅读器 (基于谷歌平台的Adobe Reader):Adobe Reader 是用于打开和使用在 Adobe Acrobat 中创建的 Adobe PDF 的工具. 虽然无法在 ...

  6. android标记 pdf阅读器,Android pdf阅读器

    我想使用 Android pdf库 http://andpdf.sourceforge.net/,但我有同样的错误.日志: ST='file 'no file selected' not found' ...

  7. N 本 Android PDF 电子书

    极力推荐文章:欢迎收藏Android 干货分享 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.Android PDF 电子书 电子书获取方法 : 微信 ...

  8. Android pdf填充表单,预览,图片填充,水印添加

    前言 需求是这样的,客户需要用户登录app后录入个人信息,然后由手机端帮助将录入的信息填充到pdf, 用户录入的部分图片需要填充到pdf模板的最后面,还需要给每一页pdf都加上水印,生成后给用户预览 ...

  9. android 电子书框架,[Android] Pdf开发框架使用

    最近项目中有个需求,在App中需要打开pdf文件格式.由于Android平台是没有直接去阅读pdf的方案,只能去调用外部程序去打开pdf文件.这里只好去求助github的帮助,下面介绍一个有关于pdf ...

最新文章

  1. JetBrains遭美国调查,称其是被大规模黑客攻击的源头?
  2. vim 文本一些行注释,替换
  3. datalist可以放div吗?_混凝土中能放竹子吗?可以代替钢筋吗?为何打地坪混凝土放竹子?...
  4. python try语句相关(try/except/else/finally)
  5. 博客园 使用锚和书签制作目录
  6. GNS3+GNS3 VM
  7. BIM族库下载——Revit家具族库
  8. mysql的学生信息建表语句_SQL语句创建学生信息数据库表的示例
  9. Tomcat热部署三种方式的详细说明
  10. 计算机错误代码0x 00000006,什么原因造成了蓝屏 电脑蓝屏错误代码介绍
  11. 位运算:【leedcode:只出现一次的数字】
  12. 3.2、关于Support for password authentication was removed on August 13, 2021报错的解决方案
  13. 前端将0到1的小数值转换成百分比
  14. 模板引擎不关心内容之——art-template,碰见的同步与fs.readFile异步以及函数回调问题的描述,针对fs的readfille读取文件时,返回不了异步函数返回值的解决方法
  15. 使用python对字符串进行md5加密
  16. 日志(Logger)
  17. 如何制作注册登录网址
  18. vue 点击打开新窗口
  19. pythonidle安装第三方库_在Python IDLE 下调用anaconda中的库教程
  20. kali中文输入法的安装

热门文章

  1. java判断长度_JAVA如何判断字符串的长度?
  2. MongoDB账户密码设置
  3. 为什么谐振时电抗为0_调频串并联谐振交流耐压试验装置组成及参数
  4. 2021年高压电工考试题库及高压电工证考试
  5. IOS 大众点评 搜索界面实现
  6. 利用CurrentCulture将人民币符号更改为欧元符号
  7. 设计模式的七大原则-下
  8. 微博入股无他相机,直播行业下半场加快“产业融合”
  9. 浅谈车载测试之智能座舱人机交互
  10. 所有绘画的核心灵魂——素描知识(转)