本地pdf文件如何在Android應用中打開?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
1.下載android-pdfview庫
2. android-pdfview的簡單介紹
PDFView是這個庫中最核心的類,用于加載pdf文件,PDFView是的實現是繼承于SurfaceView來實現的。主要用到了建造者模式來設置相關的屬性。
fromFile(file) //設置pdf文件地址 fromAsset(assetFileName) //設置pdf文件地址 defaultPage(1) //設置默認顯示第1頁 onPageChange(this) //設置翻頁監聽 onLoad(this) //設置加載監聽 onDraw(this) //繪圖監聽 showMinimap(false) //pdf放大的時候,是否在屏幕的右上角生成小地圖 swipeVertical( false ) //pdf文檔翻頁是否是垂直翻頁,默認是左右滑動翻頁 enableSwipe(true) //是否允許翻頁,默認是允許翻頁 pages() //把2 , 3 , 4 , 5 過濾掉 load();
3. 在項目的build.gradle添加這個依賴
compile 'com.joanzapata.pdfview:android-pdfview:1.0.4@aar'
4.寫一個布局文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.lidong.pdf.androidpdf.MainActivity"> <com.joanzapata.pdfview.PDFView android:id="@+id/pdfView" android:layout_width="match_parent" android:layout_height="match_parent" /> </RelativeLayout>
5.Activity的實現
package com.lidong.pdf.androidpdf;
import android.graphics.Canvas;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ViewTreeObserver;
import android.widget.Toast;
import com.joanzapata.pdfview.PDFView;
import com.joanzapata.pdfview.listener.OnDrawListener;
import com.joanzapata.pdfview.listener.OnLoadCompleteListener;
import com.joanzapata.pdfview.listener.OnPageChangeListener;
import java.io.File;
public class MainActivity extends AppCompatActivity implements OnPageChangeListener
,OnLoadCompleteListener, OnDrawListener {
private PDFView pdfView ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pdfView = (PDFView) findViewById( R.id.pdfView );
//從assets目錄讀取pdf
displayFromAssets("0010000022464002F__李東.pdf");
//從文件中讀取pdf
// displayFromFile( new File( "fileName"));
}
private void displayFromAssets(String assetFileName ) {
pdfView.fromAsset(assetFileName) //設置pdf文件地址
.defaultPage(1) //設置默認顯示第1頁
.onPageChange(this) //設置翻頁監聽
.onLoad(this) //設置加載監聽
.onDraw(this) //繪圖監聽
.showMinimap(false) //pdf放大的時候,是否在屏幕的右上角生成小地圖
.swipeVertical( false ) //pdf文檔翻頁是否是垂直翻頁,默認是左右滑動翻頁
.enableSwipe(true) //是否允許翻頁,默認是允許翻頁
// .pages() //把 5 過濾掉
.load();
}
private void displayFromFile( File file ) {
pdfView.fromFile(file) //設置pdf文件地址
.defaultPage(6) //設置默認顯示第1頁
.onPageChange(this) //設置翻頁監聽
.onLoad(this) //設置加載監聽
.onDraw(this) //繪圖監聽
.showMinimap(false) //pdf放大的時候,是否在屏幕的右上角生成小地圖
.swipeVertical( false ) //pdf文檔翻頁是否是垂直翻頁,默認是左右滑動翻頁
.enableSwipe(true) //是否允許翻頁,默認是允許翻
// .pages( 2 ,5 ) //把2 5 過濾掉
.load();
}
/**
* 翻頁回調
* @param page
* @param pageCount
*/
@Override
public void onPageChanged(int page, int pageCount) {
Toast.makeText( MainActivity.this , "page= " + page +
" pageCount= " + pageCount , Toast.LENGTH_SHORT).show();
}
/**
* 加載完成回調
* @param nbPages 總共的頁數
*/
@Override
public void loadComplete(int nbPages) {
Toast.makeText( MainActivity.this , "加載完成" + nbPages , Toast.LENGTH_SHORT).show();
}
@Override
public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {
// Toast.makeText( MainActivity.this , "pageWidth= " + pageWidth + "
// pageHeight= " + pageHeight + " displayedPage=" + displayedPage , Toast.LENGTH_SHORT).show();
}
}關于本地pdf文件如何在Android應用中打開問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。