Android 加载PDF文件

今天按项目要求找了一个android的PDF控件,各种操作效果都非常好,在这里和大家分享一下。

用法很简单:

1.在build.gradle里面添加依赖 compile 'com.github.barteksc:android-pdf-viewer:2.8.0'

2.然后就可以直接在layout里面使用了

3.在Activity里面引用资源,就可以打开pdf文件了,而且这个控件有超级多的方法,支持很多功能

       pdfView= findViewById(R.id.pdfview);

      String url="http://www8.cao.go.jp/okinawa/8/2012/0409-1-1.pdf";

      String name=url.split("/")[url.split("/").length-1];

      String pdfPath =Environment.getExternalStorageDirectory().getAbsolutePath()                                           +"/Android/data/com.demo/downloadPPT/"+name;                                           

      File file =newFile(pdfPath);

       if(file.exists()){ //如果文件存在直接打开  

            Uri uri = Uri.fromFile(file);

             pdfView.fromUri(uri)          

                 .defaultPage(1)           

                .enableSwipe(true)        

                 .load();

     }else{     

              showZpDialog("加载中...",2);

              downLoadFile(url,pdfPath);//下载PDF文件

    }

private void  downLoadFile(String url, finalString pdfPath) {                      FileDownloader.getImpl().create(url).setWifiRequired(true).

setPath(pdfPath).setListener(newFileDownloadListener() {

@Override

protected void pending(BaseDownloadTask task, intsoFarBytes, inttotalBytes) {        }

@Override

protected void  progress(BaseDownloadTask task, intsoFarBytes, inttotalBytes) {        }

@Override

protected void blockComplete(BaseDownloadTask task) {        }

@Override

protected void completed(BaseDownloadTask task) {          

       hideZpDialog();//隐藏加载框

         Toast.makeText(LookPPTActivity.this,"下载完成!",Toast.LENGTH_SHORT).show();

         File file =newFile(pdfPath);

         Uri uri = Uri.fromFile(file);

             pdfView.fromUri(uri)                   

 .defaultPage(1)                   

 .enableSwipe(true)                    

.load();

}

@Override

protected void paused(BaseDownloadTask task, intsoFarBytes, inttotalBytes) {        }

@Override

protected void error(BaseDownloadTask task,Throwable e) {           

        hideZpDialog();

}

@Override 

protected void warn(BaseDownloadTask task) {}  

  }).start();

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容