要使用PDFView加载打开pdf文档,首先我们需要先去下载PDFView库。
一.github下载地址:
https://github.com/barteksc/AndroidPdfViewer
二.添加依赖
打开src路径下的build.gradle文件,在dependencies 闭包添加依赖
dependencies {
...
implementation 'com.joanzapata.pdfview:android-pdfview:1.0.4@aar'
}
三.xml布局
在布局中添加以下代码(pdf展示+页数显示)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="[http://schemas.android.com/apk/res/android](http://schemas.android.com/apk/res/android)"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.joanzapata.pdfview.PDFView
android:id="@+id/pdfView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/common_measure_100dp"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_page"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" />
<TextView
android:id="@+id/tv_page_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
四.在.java中实现PDF文件加载
//头文件导入
import com.joanzapata.pdfview.PDFView;
import com.joanzapata.pdfview.listener.OnDrawListener;
import com.joanzapata.pdfview.listener.OnLoadCompleteListener;
import com.joanzapata.pdfview.listener.OnPageChangeListener;
//修改继承方法,使用implements实现接口
public class Instruction extends BaseActivity implements OnPageChangeListener
, OnLoadCompleteListener, OnDrawListener {
private PDFView pdfView;
//pdf文件名
private String filePath;
//tv_page:当前页 tv_page_all:总页数
private TextView tv_page,tv_page_all;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加载布局
setContentView(R.layout.activity_instruction);
pdfView = (PDFView) findViewById(R.id.pdfView);
tv_page = findViewById(R.id.tv_page);
tv_page_all = findViewById(R.id.tv_page_all);
filePath = "instruct.pdf";
displayFromAssets(filePath);
}
private void displayFromAssets(String assetFileName) {
pdfView.fromAsset(assetFileName) //设置pdf文件地址
.defaultPage(1) //设置默认显示第1页
.onPageChange(Instruction.this) //设置翻页监听
.onLoad(this) //设置加载监听
.onDraw(this) //设置绘图监听
.showMinimap(false) //pdf放大的时候,是否在屏幕的右上角生成小地图
.swipeVertical(false) //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
.enableSwipe(true) //是否允许翻页,默认是允许翻页
.load();
}
//翻页回调
@Override
public void onPageChanged(int page, int pageCount) {
tv_page.setText(page + "/");
}
//加载完成回调
@Override
public void loadComplete(int nbPages) {
tv_page_all.setText(nbPages + "");
}
@Override
public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {
Toast.LENGTH_SHORT).show();
}
}
网友评论