android pdf,GitHub - lidong1665/AndroidPDF
##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相关推荐
- android pdfview,Android PDF开发:android-pdfview
Android PDF开发:android-pdfview Android平台自身没有直接可以阅读和处理pdf的方案,在github上面有一个第三方开源的pdf开发SDK,其主页地址是: https: ...
- 开源需自立!Android、GitHub、Apache全线告急!
作者 | 胡巍巍&伍杏玲 责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 华为四面楚歌,"破窗效应"爆发! 继5月16日美国商务部工业与安全局(BIS)将华 ...
- Android pdf转换bitmap保存到本地
Android pdf转换bitmap保存到本地 PDF转换成图片保存到本地 Android有自带的API提供 首先要把PDF文件下载到本地,下载成功使用 下载就最简单的IO下载都行 例如: try ...
- Android使用Github Actions持续集成并自动上传apk到蒲公英App内测分发平台(含证书密码脱敏)
目录 1.前言 2.Github Actions持续集成 3.上传apk到蒲公英 4.Gradle配合Github Actions的Secret使用 4.1设置Github Actions Secre ...
- chrome pdf android,Android PDF阅读器 (基于谷歌平台的Adobe Reader)
Android PDF阅读器 (基于谷歌平台的Adobe Reader):Adobe Reader 是用于打开和使用在 Adobe Acrobat 中创建的 Adobe PDF 的工具. 虽然无法在 ...
- android标记 pdf阅读器,Android pdf阅读器
我想使用 Android pdf库 http://andpdf.sourceforge.net/,但我有同样的错误.日志: ST='file 'no file selected' not found' ...
- N 本 Android PDF 电子书
极力推荐文章:欢迎收藏Android 干货分享 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 一.Android PDF 电子书 电子书获取方法 : 微信 ...
- Android pdf填充表单,预览,图片填充,水印添加
前言 需求是这样的,客户需要用户登录app后录入个人信息,然后由手机端帮助将录入的信息填充到pdf, 用户录入的部分图片需要填充到pdf模板的最后面,还需要给每一页pdf都加上水印,生成后给用户预览 ...
- android 电子书框架,[Android] Pdf开发框架使用
最近项目中有个需求,在App中需要打开pdf文件格式.由于Android平台是没有直接去阅读pdf的方案,只能去调用外部程序去打开pdf文件.这里只好去求助github的帮助,下面介绍一个有关于pdf ...
最新文章
- JetBrains遭美国调查,称其是被大规模黑客攻击的源头?
- vim 文本一些行注释,替换
- datalist可以放div吗?_混凝土中能放竹子吗?可以代替钢筋吗?为何打地坪混凝土放竹子?...
- python try语句相关(try/except/else/finally)
- 博客园 使用锚和书签制作目录
- GNS3+GNS3 VM
- BIM族库下载——Revit家具族库
- mysql的学生信息建表语句_SQL语句创建学生信息数据库表的示例
- Tomcat热部署三种方式的详细说明
- 计算机错误代码0x 00000006,什么原因造成了蓝屏 电脑蓝屏错误代码介绍
- 位运算:【leedcode:只出现一次的数字】
- 3.2、关于Support for password authentication was removed on August 13, 2021报错的解决方案
- 前端将0到1的小数值转换成百分比
- 模板引擎不关心内容之——art-template,碰见的同步与fs.readFile异步以及函数回调问题的描述,针对fs的readfille读取文件时,返回不了异步函数返回值的解决方法
- 使用python对字符串进行md5加密
- 日志(Logger)
- 如何制作注册登录网址
- vue 点击打开新窗口
- pythonidle安装第三方库_在Python IDLE 下调用anaconda中的库教程
- kali中文输入法的安装