私はbarteksc-AndroidPdfViewerを使用しています。私はこのコードを使用していますページの向きを変更すると、ページの始めに来る
package com.epubtest.hxfy.epubtest;
import android.content.Context;
import android.content.SharedPreferences;
import android.graphics.Canvas;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import com.github.barteksc.pdfviewer.PDFView;
import com.github.barteksc.pdfviewer.listener.OnDrawListener;
import com.github.barteksc.pdfviewer.listener.OnErrorListener;
import com.github.barteksc.pdfviewer.listener.OnLoadCompleteListener;
import com.github.barteksc.pdfviewer.listener.OnPageChangeListener;
import com.github.barteksc.pdfviewer.listener.OnPageScrollListener;
public class PDFReaderActivity2 extends AppCompatActivity implements OnPageChangeListener, OnLoadCompleteListener, OnDrawListener, OnErrorListener, OnPageScrollListener {
private PDFView pdfview;
private SharedPreferences pdfReader;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pdfreader2);
pdfReader = this.getSharedPreferences("PDFReader", Context.MODE_PRIVATE);
pdfview = (PDFView) findViewById(R.id.pdfView);
pdfview.fromAsset("test4.pdf")
.defaultPage(pdfReader.getInt("pages",0))
.onPageChange(this)
.swipeHorizontal(false)
.enableAnnotationRendering(true)
.scrollHandle(null)
.onLoad(this)
.onDraw(this)
.enableSwipe(true)
.onError(this)
.enableDoubletap(true)
.onPageScroll(this)
.load();
}
@Override
public void onPageChanged(int page, int pageCount) {
SharedPreferences.Editor edit = pdfReader.edit();
edit.putInt("pages",page);
edit.commit();
}
@Override
public void loadComplete(int nbPages) {
}
@Override
public void onLayerDrawn(Canvas canvas, float pageWidth, float pageHeight, int displayedPage) {
}
@Override
public void onError(Throwable t) {
}
@Override
public void onPageScrolled(int page, float positionOffset) {
}
}
ページの向きを変更します。しかし、もし私が肖像画モードとページ番号15を変更した場合、私たちは風景を開始したときにページのページの向きを取る必要があります。
SharedPreferences
機能していません。私たちがいた場所の最後のページを記録することはできません。この点で私を助けてください、これについて私を助けてください。
@JavedKhanまず、 'アンドロイド:configChanges =「オリエンテーション|画面サイズは」'正常に動作しますが、それは 'pdfView.fitToWidthは()ことができませんでした;'可能であれば、上記のコードでこのメソッドを入れてくださいそれは私のために簡単に実装されます。 –
このライブラリには既にこの実装されたメソッドがあります。とにかく、私はこれを私の答えに加えます。 @AhmerAfzal – JavadKhan
このメソッドの 'pdfView.fitToWidth();'は幅に合わせて使用しましたが、 'android:configChanges =" orientation | screenSize "'を使用したときに 'pdfView.fitToWidth();'を実装できませんでした。 @JavedKhan –