//pdf在线预览
implementation 'org.xutils:xutils:3.5.0'
implementation 'es.voghdev.pdfviewpager:library:1.0.3'
布局文件
<RelativeLayout
android:id="@+id/remote_pdf_root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<es.voghdev.pdfviewpager.library.PDFViewPager
android:id="@+id/pdfViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
/**
* PDF在线预览
*/
public class PdfviewActivity extends BaseActivity implements DownloadFile.Listener {
public static final String TAG = "PdfviewActivity";
@BindView(R.id.remote_pdf_root)
RelativeLayout remotePdfRoot;
@BindView(R.id.tv_lantitle)
TextView tvLantitle;
private PDFPagerAdapter adapter;
private RemotePDFViewPager remotePDFViewPager;
private LogineDialog logineDialog;
@Override
protected int getLayoutId() {
return R.layout.activity_pdfview;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// TODO: add setContentView(...) invocation
ButterKnife.bind(this);
}
@Override
protected void initView() {
String title = getIntent().getStringExtra("title");//标题
String file = getIntent().getStringExtra("content");//网络路径:例如https://css4.pub/2015/textbook/somatosensory.pd
tvLantitle.setText(" "+title);
if (logineDialog == null) {
logineDialog = new LogineDialog(this, "正在加载");
}
logineDialog.show();
setDownloadListener(file);
}
/*设置监听*/
protected void setDownloadListener(String url) {
final DownloadFile.Listener listener = this;
remotePDFViewPager = new RemotePDFViewPager(this, url, listener);
remotePDFViewPager.setId(R.id.pdfViewPager);
}
@Override
protected void destoryData() {
}
//加载成功
@Override
public void onSuccess(String url, String destinationPath) {
if (logineDialog != null && logineDialog.isShowing()) {
logineDialog.dismiss();
}
remotePdfRoot.setVisibility(View.VISIBLE);
adapter = new PDFPagerAdapter(this, FileUtil.extractFileNameFromURL(url));
remotePDFViewPager.setAdapter(adapter);
updateLayout();
}
/*更新视图*/
private void updateLayout() {
remotePdfRoot.removeAllViewsInLayout();
remotePdfRoot.addView(remotePDFViewPager, LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT);
}
//加载失败
@Override
public void onFailure(Exception e) {
if (logineDialog != null && logineDialog.isShowing()) {
logineDialog.dismiss();
}
ToastUtil.show("数据加载错误");
}
@Override
public void onProgressUpdate(int progress, int total) {
}
}