• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Android 如何本地加载pdf文件,android加载pdf

Android 如何本地加载pdf文件,android加载pdf

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android 加载pdf文件,android打开pdf文件,android读取pdf文件,android 下载pdf文件,android 显示pdf文件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Android 如何本地加载pdf文件,android加载pdf


大部分app打开pdf文件是通过intent调起手机中能打开pdf文件的工具,来查看pdf文件,如果需求是,用户在app内下载好pdf文件后,不通过第三方的工具,本地打开。

这样的需求要怎么实现呢?上网查了一些资料,发现了一个很好用PDF开源库。

使用起来也很简单,首先添加PDFView的引用

compile 'com.github.barteksc:android-pdf-viewer:2.4.0'

布局中引用PdfView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <include layout="@layout/common_title" />

    <com.github.barteksc.pdfviewer.PDFView
        android:id="@+id/pdf_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

接下来就是下载pdf文件,为了节省用户资源,在每次下载之前检查一下本地是否有该pdf文件,如果有直接打开,没有的话再去下载。

这里我写了一个加载中的对话框,打开过程中和下载过程中用的都是这一个

if (CheckFileExist(title)){
            builderShow = new CustomDialog(ShowPDFActivity.this);
            LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View view = inflater.inflate(R.layout.dialog_pdf_progress_new, null);
            builderShow.setContentView(view);
            builderShow.show();
            isDownload=false;
            refushUI();
        }else {
            isDownload=true;
            DownLoadPDF.getInstance().downLoadPDF(ShowPDFActivity.this, //下载路径);

        }

如果本地有pdf文件,则开始加载pdf文件,refushUI();

 

    public void refushUI(){
        try {
            pdfView.fromFile(new File(//pdf文件的绝对路径,//标题))
                    .defaultPage(1)
                    .enableAnnotationRendering(false)
                    .onLoad(new OnLoadCompleteListener() {
                        @Override
                        public void loadComplete(int nbPages) {
                            if (isDownload){
                                DownLoadPDF.getInstance().closeDilaoig();
                            }
                            if (builderShow != null&&builderShow.isShowing()) {
                                builderShow.dismiss();
                            }
                        }
                    })
                    .scrollHandle(null)
                    .load();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

 

PDFView加载pdf文件有两种形式,一种是从文件中读取,还有一种就是从assets目录中读取

    private void displayFromAssets(String assetFileName ) {
        pdfView.fromAsset(assetFileName)   //设置pdf文件地址
                .defaultPage(6)         //设置默认显示第1页
                .onPageChange(this)     //设置翻页监听
                .onLoad(this)           //设置加载监听
                .onDraw(this)            //绘图监听
                .showMinimap(false)     //pdf放大的时候,是否在屏幕的右上角生成小地图
                .swipeVertical( false )  //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
                .enableSwipe(true)   //是否允许翻页,默认是允许翻页
               // .pages( 2 , 3 , 4 , 5  )  //把2 , 3 , 4 , 5 过滤掉
                .load();
    }

    private void displayFromFile( File file ) {
        pdfView.fromFile(file)   //设置pdf文件地址
                .defaultPage(6)         //设置默认显示第1页
                .onPageChange(this)     //设置翻页监听
                .onLoad(this)           //设置加载监听
                .onDraw(this)            //绘图监听
                .showMinimap(false)     //pdf放大的时候,是否在屏幕的右上角生成小地图
                .swipeVertical( false )  //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
                .enableSwipe(true)   //是否允许翻页,默认是允许翻
                // .pages( 2 , 3 , 4 , 5  )  //把2 , 3 , 4 , 5 过滤掉
                .load();
    }

本地没有pdf文件,需要从服务端获取, DownLoadPDF.getInstance().downLoadPDF(ShowPDFActivity.this, //下载路径);

 

public class DownLoadPDF {
    private static Context context;
    private static File file ;
    private static CustomDialog builder = null ;
    private static Handler ddhandle;
    private static DownLoadPDF instance = null;
    public static DownLoadPDF getInstance(){
        if(instance==null){
            synchronized (DownLoadPDF.class){
                if(instance==null){
                    instance = new DownLoadPDF();
                }
            }
        }
        return instance;
    }
    public void downLoadPDF(final Context con, final String url, final String title, final Handler ddhandler) {
        ddhandle = ddhandler;
        context = con;
        builder = new CustomDialog(con);
        LayoutInflater inflater = (LayoutInflater) con.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.dialog_pdf_progress_new, null);
        builder.setContentView(view);
        builder.show();

        new Thread() {
            @Override
            public void run() {
                try {
                    f



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android 如何本地加载pdf文件,android加载pdf

相关文章

  • 2017-05-26高仿360手机卫士应用源码,高仿360卫士源码
  • 2017-05-26HBase Java编程示例
  • 2017-05-26Android 手机卫士--是否有密码区分对话框类型,android卫士
  • 2017-05-26Android 数据库SQLite 写入SD卡,androidsqlite
  • 2017-05-26Android应用自定义View绘制方法手册
  • 2017-05-26Android系统属性简介,android属性简介
  • 2017-05-26React Native,reactnative
  • 2017-05-26Android程序中--不能改变的事情,android程序--改变
  • 2017-05-26如何处理 android 方法总数超过 65536 . the number of method references in a .dex file exceed 64k,android.dex
  • 2017-05-26android中实现监听的四种方法,android四种方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 常用代码块,代码
    • android adb pull push,androidadb
    • android:自定义HorizontalScrollView实现qq侧滑菜单
    • Android Studio快捷键指南(本文持续更新)
    • Android开发:Android SDK的介绍
    • 解决关于 在android studio 出现的 DELETE_FAILED_INTERNAL_ERROR Error while Installing APK 问题,whileinstallingapk
    • 用Kotlin实现Android定制视图(KAD 06),kotlinandroid
    • Android Studio下运行开源项目9GAG遇到的问题
    • SharedPreferences详解,sharedpreferences
    • Android Bitmap占用内存计算公式,androidbitmap

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有