Android 之 PDF 预览

本文详细介绍了在Android应用中通过AndroidManifest.xml设置PDF类型监听,从传递的PDF文件路径截取文件名称,并选择手机上可以查看PDF文件的应用程序的方法。包括接收文件传递路径的代码、打开PDF文件的APP代码以及浏览PDF文件的其他方式。

需求:用户点击PDF文件,打开文件选中PDFDemo打开,PDFDemo自动显示文件的名称,点击文件可选择浏览工具。

要点:

  1. 在AndroidManifest.xml设置pdf类型监听
  2. 从传递的pdf文件路径截取文件名称
  3. 选择手机可以查看pdf文件的APP

效果图展示:
1、用户选择PDFDemo打开PDF文件:

这里写图片描述

2、PDFDemo接受PDF文件的显示页面:

这里写图片描述

3、点击图片,选择浏览PDF文件的APP:

这里写图片描述


要点代码块:


在AndroidManifest.xml中定义:

<activity
            android:name="com.slightsnower.pdfdemo.PDFActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW"/>
                <data android:mimeType="application/pdf"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

在PDFActivity中罗列出可以读pdf文件的APP的代码:

接受文件传递的路径的代码:

private void getPDF_FileName() {
        Intent intent = getIntent();
        if (intent == null) return;

        Uri uri = intent.getData();
        if (uri == null) {
            return;
        }

        path = uri.getPath();
        if (path == null) {
            Toast.makeText(getApplicationContext(), "无文件传递", Toast.LENGTH_LONG).show();
        } else {
            String fileName = path.substring(path.lastIndexOf("/") + 1, path.length());
            file_name_tv.setText(fileName);
        }
    }

罗列出可以打开pdf文件的APP代码:

private Intent getPdfFileIntent(){
        Intent intent = new Intent("android.intent.action.VIEW");
        intent.addCategory("android.intent.category.DEFAULT");
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        Uri uri = Uri.fromFile(new File(path));
        intent.setDataAndType(uri, "application/pdf");

        return intent;

    }

引用:

Intent intent = getPdfFileIntent();
                startActivity(intent);

注:还有其他的一些方法浏览pdf:

  • 其实谷歌提供了webview在线浏览pdf文件,噢,需要翻墙——wv.loadUrl("http://docs.google.com/gview?embedded=true&url="
    +path);
  • 使用第三方的pdf插件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值