博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android打开pdf文件
阅读量:6303 次
发布时间:2019-06-22

本文共 1631 字,大约阅读时间需要 5 分钟。

我们在工作中肯定有需要,加载pdf或者doc的地方,但是,android没有提供一个好的打开方法,我又想吐槽下,人家ios可以直接打开的。。

有2钟方法打开pdf、doc。

方法一:

利用Intent打开pdf:

Intent intent = new Intent(Intent.ACTION_VIEW);intent.addCategory("android.intent.category.DEFAULT");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);Uri uri = Uri.fromFile(file);intent.setDataAndType(uri, "application/pdf");startActivity(intent);复制代码

或者:

Uri uri = Uri.parse(arg0);Intent intent = new Intent(Intent.ACTION_VIEW, uri);intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);复制代码

方法2利用腾讯x5打开:

摘自:https://juejin.im/post/59c64f59f265da06456d7d6a

接入可以看官方的文档:https://x5.tencent.com/tbs/guide/sdkInit.html

1.先创建一个:activity_pdf的布局文件:

复制代码

2.创建的activity集成TbsReaderView.ReaderCallback接口,不用管里面的方法;

3.创建TbsReaderView的实例对象,并通过addView方法注入到RelativeLyout布局里:

relayout= (RelativeLayout) findViewById(R.id.tb);TbsReaderView  mTbsReaderView=new TbsReaderView(this,this);relayout.addView(mTbsReaderView,new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT));复制代码

4.通过Bulder把pdf的文件路径和插件缓存路径传过去,在这之前先初始化:

Bundle bundle = new Bundle();bundle.putString("filePath", FileUrl);bundle.putString("tempPath", Environment.getExternalStorageDirectory().getPath());File file = new File(FileUrl);boolean result = mTbsReaderView.preOpen(parseFormat(FileUrl), false);LogTool.ii(TAG,"result: "+result+" Path: "+file.getPath());if (result) {    mTbsReaderView.openFile(bundle);}复制代码

parse方法:

private String parseFormat(String fileName) {    return fileName.substring(fileName.lastIndexOf(".") + 1);}复制代码

需要注意的一点是在onDestory方法里面需要x5释放:

mTbsReaderView.onStop();复制代码

转载地址:http://debxa.baihongyu.com/

你可能感兴趣的文章
volatile小记
查看>>
Socket通道
查看>>
微信接口调用返回码一览表
查看>>
PCI Express(四) - The transaction layer
查看>>
vue-router 使用a链接跳转至二级子页面偶尔会出现地址栏看不见路由和参数的情况...
查看>>
连接mongodb服务
查看>>
2017 ACM/ICPC Asia Regional Qingdao Online 1011 A Cubic number and A Cubic Number
查看>>
创建多个线程、互斥量、死琐
查看>>
shell自定义函数
查看>>
windows 7 资源管理器预览 js 文件方法
查看>>
《构建之法》阅读笔记五
查看>>
Python 异常处理
查看>>
Python & PyCharm & Django 搭建web开发环境(续)
查看>>
1.GitHub开源之旅第一季:Git入门
查看>>
Spark注册UDF函数,用于DataFrame DSL or SQL
查看>>
启动mysql服务,报错1067,进程意外终止
查看>>
COMP5349: Cloud Computing
查看>>
Java 7 新增功能
查看>>
in_array 判断的一些见解
查看>>
JConsole监控远程Tomcat服务器
查看>>