android实现pdf阅读器
添加依赖
implementation 'com.github.barteksc:android-pdf-viewer:3.1.0-beta.1'
MainActivity文件
import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import com.github.barteksc.pdfviewer.PDFView; 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; import com.github.barteksc.pdfviewer.util.Constants; import com.github.barteksc.pdfviewer.util.FitPolicy; import java.io.File; public class MainActivity extends AppCompatActivity implements OnPageChangeListener, OnLoadCompleteListener, OnPageErrorListener { private PDFView pdfView; //private PDFView pdfView; public static final String SAMPLE_FILE = "sample.pdf"; String pdfFileName; Integer pageNumber = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pdfView = (PDFView) findViewById(R.id.pdfView); displayFromAsset("sample.pdf"); } private void displayFromAsset(String assetFileName) { pdfFileName = assetFileName; pdfView.fromAsset(SAMPLE_FILE) .defaultPage(pageNumber) .onPageChange(this) .enableAnnotationRendering(true) .onLoad(this) .scrollHandle(new DefaultScrollHandle(this)) .spacing(10) // in dp .onPageError(this) .pageFitPolicy(FitPolicy.BOTH) .load(); } @Override public void onPageChanged(int page, int pageCount) { } @Override public void loadComplete(int nbPages) { } @Override public void onPageError(int page, Throwable t) { } }
layout文件
<com.github.barteksc.pdfviewer.PDFView android:id="@+id/pdfView" android:layout_width="match_parent" android:layout_height="match_parent" />
效果图
GitHub地址 下载前给star
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了