在网上找了好多方法都实现不了
webview不能直接打开pdf这里就不列举了
下面是我的方法
public class MainActivity extends AppCompatActivity {
String pdf = "http://beta.juzhennet.com/dtkj10/file/upload/2016/11/07/1478680611.pdf";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String path = Environment.getExternalStorageDirectory().getPath() + File.separator;
RequestParams requestParams = new RequestParams(pdf);
requestParams.setSaveFilePath(path);
x.http().get(requestParams, new Callback.ProgressCallback<File>() {
@Override
public void onWaiting() {
}
@Override
public void onStarted() {
}
@Override
public void onLoading(long total, long current, boolean isDownloading) {
System.out.println("----"+total+"------"+current);
}
@Override
public void onSuccess(File result) {
test(result);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
});
}
private void test(File file) {
PDFView pdfView = (PDFView) findViewById(R.id.pdfView);
// pdfView.fromUri(Uri)
// or
pdfView.fromFile(file)
// or
// pdfView.fromBytes(byte[])
// or
// pdfView.fromStream(InputStream)
// or
// pdfView.fromSource(DocumentSource)
// or
// pdfView.fromAsset(s)
// .pages(0, 2, 1, 3, 3, 3) // all pages are displayed by default
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.defaultPage(0)
// .onDraw(onDrawListener)
// .onLoad(onLoadCompleteListener)
// .onPageChange(onPageChangeListener)
// .onPageScroll(onPageScrollListener)
// .onError(onErrorListener)
.enableAnnotationRendering(false)
.password(null)
.scrollHandle(null)
.load();
}
使用了 xUtils的网络请求框架 和 pdfviewer开源框架
compile 'com.github.barteksc:android-pdf-viewer:2.4.0'
compile 'org.xutils:xutils:3.3.40'
<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/pdfView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>