1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
import android.content.Intent;
import android.util.Log;
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.googlecode.androidannotations.annotations.*;
import com.joanzapata.pdfview.PDFView;
import com.joanzapata.pdfview.listener.OnPageChangeListener;
import com.joanzapata.pdfview.sample.R;
import static java.lang.String.format;
@EActivity(R.layout.activity_main)
@OptionsMenu(R.menu.actionbar)
public class PDFViewActivity extends SherlockActivity implements OnPageChangeListener {
public static final String SAMPLE_FILE = "sample.pdf";
public static final String ABOUT_FILE = "about.pdf";
@ViewById
PDFView pdfView;
@NonConfigurationInstance
String pdfName = SAMPLE_FILE;
@NonConfigurationInstance
Integer pageNumber = 1;
@AfterViews
void afterViews() {
display(pdfName, false);
}
@OptionsItem
public void about() {
if (!displaying(ABOUT_FILE))
display(ABOUT_FILE, true);
}
private void display(String assetFileName, boolean jumpToFirstPage) {
if (jumpToFirstPage) pageNumber = 1;
setTitle(pdfName = assetFileName);
pdfView.fromAsset(assetFileName)
.defaultPage(pageNumber)
.onPageChange(this)
.load();
}
@Override
public void onPageChanged(int page, int pageCount) {
pageNumber = page;
setTitle(format("%s %s / %s", pdfName, page, pageCount));
}
@Override
public void onBackPressed() {
if (ABOUT_FILE.equals(pdfName)) {
display(SAMPLE_FILE, true);
} else {
super.onBackPressed();
}
}
private boolean displaying(String fileName) {
return fileName.equals(pdfName);
}
} |
Partager