1.AndroidManifest.xml加入读写权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
2.在项目Module 下build.gradle 文件引用下lib资源
dependencies {
...
implementation 'com.joanzapata.pdfview:android-pdfview:1.0.4@aar'
}
3.activity_main.xml加入pdf view 控件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<com.joanzapata.pdfview.PDFView
android:id="@+id/pdfView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerVertical="true" />
<Button
android:layout_width="200dp"
android:layout_height="80dp"
android:gravity="center"
android:onClick="readPDF"
android:text="Read Start"
android:textColor="@android:color/holo_red_light"
android:textSize="26sp" />
</RelativeLayout>
4.MainActivity.java读取并显示PDF文件内容
public class MainActivity extends AppCompatActivity {
private static final String TAG = "jack";
private static final String FILE_PATH = "/storage/udisk1/udisk10/0709-COWIN-UI视觉规范-冻结稿.pdf";
private PDFView pdfView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
initViews();
}
private void initViews() {
pdfView = (PDFView)findViewById(R.id.pdfView);
}
public void readPDF(View v){
pdfView.fromFile(new File(FILE_PATH)) //设置pdf文件地址
.defaultPage(1) //设置默认显示第1页
.onPageChange(mOnPageChangeListener) //设置翻页监听
.onLoad(mOnLoadCompleteListener) //设置加载监听
.onDraw(mOnDrawListener) //绘图监听
.showMinimap(false) //pdf放大的时候,是否在屏幕的右上角生成小地图
.swipeVertical( false ) //pdf文档翻页是否是垂直翻页,默认是左右滑动翻页
.enableSwipe(true) //是否允许翻页,默认是允许翻
// .pages( 2 , 3 , 4 , 5 ) //把2 , 3 , 4 , 5 过滤掉
.load();
}
private OnPageChangeListener mOnPageChangeListener = new OnPageChangeListener(){
@Override
public void onPageChanged(int page, int pageCount) {
Log.i(TAG,"onPageChanged() ...page : "+page+" ,pageCount: "+pageCount);
}
};
private OnLoadCompleteListener mOnLoadCompleteListener = new OnLoadCompleteListener(){
@Override
public void loadComplete(int nbPages) {
Log.i(TAG,"loadComplete() ...nbPages : "+nbPages);
}
};
private OnDrawListener mOnDrawListener = new OnDrawListener(){
@Override
public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {
}
};
}
效果展示: