最近公司要求项目中增加资料库, 能在线查看pdf格式的文件, 且只能查看不能下载,在github搜索,后找到了合适的第三方框架PdfViewPager.

效果图:

实现步骤:

1、导入依赖包

implementation 'org.xutils:xutils:3.5.0'
implementation  'es.voghdev.pdfviewpager:library:1.0.3'

如果你用到了了PhotoView或者commit451,因为他们之间有重复的包冲突,所以需要改为:


implementation 'org.xutils:xutils:3.5.0'implementation('es.voghdev.pdfviewpager:library:1.0.3') {exclude group: 'com.commit451', module: 'PhotoView'}

2、权限

 <uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

3、XML文件:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="50dp"android:background="@color/colorBlue"><ImageViewandroid:id="@+id/htdetail_back"android:layout_width="wrap_content"android:layout_height="match_parent"android:padding="15dp"android:src="@mipmap/layout_back" /><TextViewandroid:layout_width="wrap_content"android:layout_height="match_parent"android:layout_centerInParent="true"android:gravity="center"android:text="PDF查看"android:textColor="@color/white"android:textSize="18sp" /></RelativeLayout><Viewandroid:layout_width="match_parent"android:layout_height="0.1dp"android:background="@color/gray" /><RelativeLayoutandroid:id="@+id/remote_pdf_root"android:layout_width="match_parent"android:layout_height="match_parent"><es.voghdev.pdfviewpager.library.PDFViewPagerandroid:id="@+id/pdfViewPager"android:layout_width="match_parent"android:layout_height="match_parent" /></RelativeLayout><ProgressBarandroid:id="@+id/pb_bar"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:layout_marginTop="150dp"android:layout_gravity="center" /></LinearLayout>

4、Activity代码:


public class MainActivity extends AppCompatActivity implements DownloadFile.Listener {private RemotePDFViewPager remotePDFViewPager;private PDFPagerAdapter adapter;private ImageView contractBack;private RelativeLayout remotePdfRoot;private ProgressBar pbBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();initData();initListener();}private void initView() {contractBack = findViewById(R.id.htdetail_back);remotePdfRoot = findViewById(R.id.remote_pdf_root);pbBar = findViewById(R.id.pb_bar);remotePdfRoot.setVisibility(View.GONE);}private void initData() {//pdf链接String url = "https://css4.pub/2015/textbook/somatosensory.pdf";setDownloadListener(url);}private void initListener() {contractBack.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {finish();}});}/*设置监听*/protected void setDownloadListener(String url) {final DownloadFile.Listener listener = this;remotePDFViewPager = new RemotePDFViewPager(this, url, listener);remotePDFViewPager.setId(R.id.pdfViewPager);}/*加载成功调用*/@Overridepublic void onSuccess(String url, String destinationPath) {pbBar.setVisibility(View.GONE);remotePdfRoot.setVisibility(View.VISIBLE);adapter = new PDFPagerAdapter(this, FileUtil.extractFileNameFromURL(url));remotePDFViewPager.setAdapter(adapter);updateLayout();}/*更新视图*/private void updateLayout() {remotePdfRoot.removeAllViewsInLayout();remotePdfRoot.addView(remotePDFViewPager, LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);}/*加载失败调用*/@Overridepublic void onFailure(Exception e) {pbBar.setVisibility(View.GONE);ToastUtil.showToast(this, "数据加载错误");}@Overridepublic void onProgressUpdate(int progress, int total) {}
}

需要Demo的童鞋关注底部公众号并回复:“PdfDemo” 即可获取哦.


小编整理了一份Android电子书籍,需要的童鞋关注底部公众号(longxuanzhigu)回复:“e_books” 即可获取哦!

以下是公众号(longxuanzhigu),之后发布的文章会同步到该公众号,方便交流学习Android知识,欢迎关注:

Android实现查看预览PDF文件功能相关推荐

  1. Android加载预览PDF文件

    从去年9月份进入新公司后,项目中需要在APP中展示PDF,这个之前没有接触过,因此也查了好多的资料和demo,这里我说明下我用过的pdf展示比较好点View或者第三方,本人亲测. 1.使用Google ...

  2. vue3 - 【完整源码】超详细实现网站 / H5 在线预览 pdf 文件功能,支持缩放、旋转、全屏预览、打印、下载、内容检索、主题色定制、侧边缩略图、页码跳转等等(最好用的pdf预览器,注释详细!)

    效果图 在 Vue3.js 项目中,实现了快速高效的 pdf 预览器工具组件,附带详细的使用教程与详细的注释,保证一键复制轻松搞定! 详细的注释很容易二次修改,很多实用功能,你也可以自定义界面上的样式 ...

  3. 在线预览PDF文件功能实现

  4. android 在线预览pdf文件

    android原生webView不支持预览pdf文件,ios却可以,所以android想要实现在线预览webView要通过其他方法,有以下几种方法: 1.andorid原生自带的pdf管理库,主要提供 ...

  5. android 在线预览pdf文件(目前最全)

    android原生webView不支持预览pdf文件,ios却可以,所以android想要实现在线预览webView要通过其他方法,有以下几种方法: 一.andorid原生自带的pdf管理库,主要提供 ...

  6. 关于Android 在线预览PDF文件

    本篇文章大部分为转载内容,不过最后有我自己使用后的小总结,原文地址:https://www.jianshu.com/p/9e3ff8385e6f Android PdfViewer: 项目地址: ht ...

  7. Android在线预览pdf文件的几种方式

    Android原生WebView不支持预览pdf文件,ios却可以,所以Android想要实现在线预览WebView要通过其他方法,有以下几种方法: 第一种方式: andorid原生自带的pdf管理库 ...

  8. html 在线预览pdf功能,html中在线预览pdf文件之pdf在线预览插件

    html中在线预览pdf文件之pdf在线预览插件 最近遇到一个需求,要在html页面查看pdf生成的pdf文件!javascript 翻来覆去找到两种办法 ,最后采用了jquery.media.js插 ...

  9. vue项目中预览pdf文件

    一.利用浏览器自带的预览pdf // [pdfUrl] 获取pdf地址 eg:http://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pl ...

  10. uniapp在线预览pdf文件

    公司要求uniapp打包的h5和app都要能在线预览pdf文件.最开始是想找uniapp的插件,去插件市场搜了下,没得几个插件可用,且需要收费,所以直接用的pdf.js插件实现,在h5以及h5打包的a ...

最新文章

  1. 在 Kubuntu 21.04 中安装和升级 KDE Plasma 5.2
  2. 我的第三个网页制作:b、i、s、u、sub、sup标签的使用
  3. [YTU]_1032( 统计出其中英文字母、数字、空格和其他字符的个数)
  4. 注册COM组件cmd(管理员权限)
  5. jQuery实现复选框的全选和反选:
  6. 结对编程 贪吃蛇项目-开发环境搭建过程
  7. vue下使用axios应用
  8. Windows下jupyter notebook 修改打开的浏览器为chrome
  9. elasticsearch索引的初始化操作以及marvel操作(增删改查),批量查询_mget,批量操作_bulk
  10. Android学习小Demo(12)TodoList实现ListView的分组实现
  11. 微软发布Silverlight 4新版并更新Silverlight Tools和SDK
  12. 翻身的废鱼——论PHP从入门到放弃需要多久?18
  13. 卫星与太阳的方位角与交会角
  14. 笔记本 无线网联网 win10系统 ,台式机木有无线网卡,通过一根网线连接两台电脑,使台式机联网。...
  15. ThinkPHP6 自定义分页样式 快速配置
  16. IE浏览器日期转换问题
  17. 移动架构11_建造者模式
  18. Why-How-What黄金圈法则 的理解和运用
  19. google的搜索技巧
  20. 笔记本按开机键电源灯不亮

热门文章

  1. 投射式触摸屏自电容与互电容工作原理基础(未完待续)
  2. 介绍几款知名的工作流系统软件
  3. 利用微信JSSDK实现自动定位
  4. android全息投影,超低成本手机全息3D投影制作教程
  5. 美版iphone更新系统无服务器,iPhone 升级系统提示无法检查更新如何解决?
  6. 用广义线性模型进行数据分析(下)
  7. Exploring $ORIGIN - 探索 $ORIGIN
  8. Exploring Complementary Strengths of Invariant and Equivariant Representations for Few-Shot Learning
  9. bat批处理复制指定目录及其子目录的指定后缀文件到指定文件夹
  10. XMAPP多端口配置