今天按项目要求找了一个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();
}