[Android] android-pdfview:PDF表示設定を変更する(APIレベル20以下)

android-pdfviewを使えばAndroid4.4以下の端末でもPDFビュアーを簡単に作成することができます。ここでは、android-pdfviewの表示設定について説明します。
広 告
目次
- 1. 端末ストレージ内のPDFファイルを読み込む
- 2. デフォルトページを設定する
- 3. 表示ページを限定する
- 4. スワイプを無効にする
- 5. ページ読み込み完了時のイベントを受け取る
- 6. ページ切り替え時のイベントを受け取る
前提条件
- android-pdfview:PDFファイルを表示するを理解していること
動作確認端末
- Nexus7 – 5.1 – API22
1. 端末ストレージ内のPDFファイルを読み込む
ストレージ内のファイルを読み込む場合は、fromFile()
メソッドを使います。
以下がサンプルコードを示します。
src/main/java/<packagename>/MainActivity.java
final PDFView pdfView = (PDFView) findViewById(R.id.pdfview); pdfView.fromFile(new File("sample.pdf")).load();
2. デフォルトページを設定する
PDFファイルを読み込み、デフォルトで表示するページを設定する場合は、defaultPage()
メソッドを使います。1ページ目をデフォルト表示させたい場合は1を、2ページ目をデフォルト表示させたい場合は2を設定します。
以下にサンプルコードを示します。
src/main/java/<packagename>/MainActivity.java
final PDFView pdfView = (PDFView) findViewById(R.id.pdfview); pdfView.fromAsset("sample.pdf") .defaultPage(2) .load();
3. 表示ページを限定する
読み込んだPDFファイルの中から、表示させたいページを限定させたい場合は、pages()
メソッドを使用します。
1ページ目と3ページ目のみ表示させたい場合は、以下のように設定します。
src/main/java/<packagename>/MainActivity.java
final PDFView pdfView = (PDFView) findViewById(R.id.pdfview); pdfView.fromAsset("sample.pdf") .pages(0,2) .load();
4. スワイプを無効にする
PDFビュアーのスワイプの有効/無効を切り替えたい場合は、enableSwipe()
メソッドを使用します。
スワイプを無効(そのようなケースはあまりないかと思いますが)にする場合は、以下のようにfalse
を設定します。
src/main/java/<packagename>/MainActivity.java
final PDFView pdfView = (PDFView) findViewById(R.id.pdfview); pdfView.fromAsset("sample.pdf") .enableSwipe(false) .load();
5. ページ読み込み完了時のイベントを受け取る
ページ読み込み完了時のイベントを受け取るためにはonLoad()
メソッドにOnLoadCompleteListener
を使ってイベントリスナーを設定する必要があります。
以下にサンプルコードを示します。
src/main/java/<packagename>/MainActivity.java
import com.joanzapata.pdfview.PDFView; import com.joanzapata.pdfview.listener.OnLoadCompleteListener; … final PDFView pdfView = (PDFView) findViewById(R.id.pdfview); pdfView.fromAsset("sample.pdf") .onLoad(new OnLoadCompleteListener() { @Override public void loadComplete(int page) { // ページ読み込み完了時に実行されます // 引数には読み込んだページ数が渡されてきます } }) .load();
6. ページ切り替え時のイベントを受け取る
ページ切り替え時のイベントを受け取るためには、onPageChange()
メソッドにOnPageChangeListener
を使ってイベントリスナーを設定する必要があります。
以下にサンプルコードを示します。
src/main/java/<packagename>/MainActivity.java
import com.joanzapata.pdfview.PDFView; import com.joanzapata.pdfview.listener.OnPageChangeListener; … final PDFView pdfView = (PDFView) findViewById(R.id.pdfview); pdfView.fromAsset("sample.pdf") .onPageChange(new OnPageChangeListener() { @Override public void onPageChanged(int current, int total) { // ページが切り替わった時に実行されます。 // 第一引数は現在のページ数 // 第二引数はページ数の合計 } }) .load();