Android 之 PDF 預覽
阿新 • • 發佈:2019-01-27
需求:使用者點選PDF檔案,開啟檔案選中PDFDemo開啟,PDFDemo自動顯示檔案的名稱,點選檔案可選擇瀏覽工具。
要點:
- 在AndroidManifest.xml設定pdf型別監聽
- 從傳遞的pdf檔案路徑擷取檔名稱
- 選擇手機可以檢視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外掛