美文网首页
Android PDFView打开本地PDF文档

Android PDFView打开本地PDF文档

作者: 浅_若清风 | 来源:发表于2021-06-22 12:16 被阅读0次

要使用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();
    }
}

相关文章

网友评论

      本文标题:Android PDFView打开本地PDF文档

      本文链接:https://www.haomeiwen.com/subject/tvbpyltx.html