app实现预览功能
所花时间:2小时
代码量:如下:
博客量:本学期截至目前42篇
了解到的知识点:app预浏览
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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" android:background="@color/white" android:padding="@dimen/box_inset_layout_padding" tools:context=".activity.PdfActivity"> <com.github.barteksc.pdfviewer.PDFView android:id="@+id/pdfView" android:layout_width="match_parent" android:layout_height="match_parent"/> </androidx.constraintlayout.widget.ConstraintLayout>
package com.example.nucleicacid32.activity; import android.graphics.Canvas; import android.os.Bundle; import android.os.StrictMode; import com.example.nucleicacid32.base.BaseActivity; import com.example.nucleicacid32.databinding.ActivityPdfBinding; import com.github.barteksc.pdfviewer.listener.OnDrawListener; import com.github.barteksc.pdfviewer.listener.OnLoadCompleteListener; import com.github.barteksc.pdfviewer.listener.OnPageChangeListener; import com.github.barteksc.pdfviewer.listener.OnPageErrorListener; import com.github.barteksc.pdfviewer.scroll.DefaultScrollHandle; public class PdfActivity extends BaseActivity<ActivityPdfBinding> implements OnPageChangeListener, OnLoadCompleteListener, OnDrawListener, OnPageErrorListener { public static final String FILE_NAME = "ali.pdf"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); init(); } private void init() { if (android.os.Build.VERSION.SDK_INT > 9) { StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); StrictMode.setThreadPolicy(policy); } viewBinding.pdfView.fromAsset(FILE_NAME) .defaultPage(0) .onPageChange(this) .enableSwipe(false) .enableAnnotationRendering(true) .onLoad(this) .scrollHandle(new DefaultScrollHandle(this)) .spacing(10) // in dp .onPageError(this) .load(); } @Override public void onPageChanged(int page, int pageCount) { } @Override public void loadComplete(int nbPages) { } @Override public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) { } @Override public void onPageError(int page, Throwable t) { } }