diff options
author | fredrossperry <fredrossperry@gmail.com> | 2016-06-23 13:32:36 -0700 |
---|---|---|
committer | fredrossperry <fredrossperry@gmail.com> | 2016-07-06 11:14:49 -0700 |
commit | 01d5f0bc4185c001179ca6fd36530516acc16eeb (patch) | |
tree | 53622c9ef5aea76a6e781fb18380138d9f70d9bb /platform/android/example/app/src | |
parent | cb894e713b2f60fef0a7e83ccb3a3d29589193bc (diff) | |
download | mupdf-01d5f0bc4185c001179ca6fd36530516acc16eeb.tar.xz |
Android example: modify to use new JNI, N-up page display
- uses AndroidDrawDevice for rendering
- very simple sample app
- mupdf-specific functionality in a module called "mupdf"
- N-up page display
- page rendering in a background task
Signed-off-by: fredrossperry <fredrossperry@gmail.com>
Diffstat (limited to 'platform/android/example/app/src')
3 files changed, 13 insertions, 142 deletions
diff --git a/platform/android/example/app/src/main/AndroidManifest.xml b/platform/android/example/app/src/main/AndroidManifest.xml index c1dc4e52..bdd8e804 100644 --- a/platform/android/example/app/src/main/AndroidManifest.xml +++ b/platform/android/example/app/src/main/AndroidManifest.xml @@ -3,7 +3,7 @@ package="com.artifex.mupdf.example"> <uses-sdk - android:minSdkVersion="8" + android:minSdkVersion="16" android:targetSdkVersion="16" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> diff --git a/platform/android/example/app/src/main/java/com/artifex/mupdf/example/DocViewActivity.java b/platform/android/example/app/src/main/java/com/artifex/mupdf/example/DocViewActivity.java index a0e989ff..32f2cecd 100644 --- a/platform/android/example/app/src/main/java/com/artifex/mupdf/example/DocViewActivity.java +++ b/platform/android/example/app/src/main/java/com/artifex/mupdf/example/DocViewActivity.java @@ -1,105 +1,30 @@ package com.artifex.mupdf.example; import android.app.Activity; -import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; -import com.artifex.mupdf.fitz.ColorSpace; -import com.artifex.mupdf.fitz.Document; -import com.artifex.mupdf.fitz.Matrix; -import com.artifex.mupdf.fitz.Page; -import com.artifex.mupdf.fitz.Pixmap; +import com.artifex.mupdf.android.DocView; public class DocViewActivity extends Activity { - private int mPageCount; - private int mCurrentPage; - - Document mDocument; - Page mPage; - Bitmap mBitmap = null; - - ImageView mImageView; - TextView mTextView; + private DocView mDocView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.activity_doc_view); - mImageView = (ImageView)findViewById(R.id.image_view); - mTextView = (TextView)findViewById(R.id.page_text); + // set up UI + setContentView(R.layout.activity_doc_view); + mDocView = (DocView)findViewById(R.id.doc_view); - // load the doc + // get the file path Uri uri = getIntent().getData(); - String path = Uri.decode(uri.getEncodedPath()); - mDocument = new Document(path); - mPageCount = mDocument.countPages(); - - // show the first page - mCurrentPage = 0; - displayCurrentPage(); - } + final String path = Uri.decode(uri.getEncodedPath()); - public void onFirstPageButton(final View v) - { - mCurrentPage = 0; - displayCurrentPage(); - } - - public void onPreviousPageButton(final View v) - { - if (mCurrentPage > 0) - { - mCurrentPage--; - displayCurrentPage(); - } + // start the view + mDocView.start(path); } - public void onNextPageButton(final View v) - { - if (mCurrentPage < mPageCount-1) - { - mCurrentPage++; - displayCurrentPage(); - } - } - - public void onLastPageButton(final View v) - { - mCurrentPage = mPageCount-1; - displayCurrentPage(); - } - - private void displayCurrentPage() - { - // report the page number - mTextView.setText(String.format("page %d of %d",mCurrentPage+1,mPageCount)); - - // get the page - mPage = mDocument.loadPage(mCurrentPage); - - // create a matrix that renders at 300 DPI - Matrix m = new Matrix(); - m.scale(300.0f/72.0f); - - // create a new bitmap for the page - Bitmap old = mBitmap; - Pixmap pixmap = mPage.toPixmap(m, ColorSpace.DeviceBGR); - mBitmap = Bitmap.createBitmap(pixmap.getWidth(), pixmap.getHeight(), Bitmap.Config.ARGB_8888); - int [] pixels = pixmap.getPixels(); - mBitmap.setPixels(pixels, 0, pixmap.getWidth(), 0, 0, pixmap.getWidth(), pixmap.getHeight()); - - // set the bitmap in the UI - mImageView.setImageBitmap(mBitmap); - - // recycle the old bitmap - if (old!=null) - old.recycle(); - } } diff --git a/platform/android/example/app/src/main/res/layout/activity_doc_view.xml b/platform/android/example/app/src/main/res/layout/activity_doc_view.xml index 05cee21a..7f5ece24 100644 --- a/platform/android/example/app/src/main/res/layout/activity_doc_view.xml +++ b/platform/android/example/app/src/main/res/layout/activity_doc_view.xml @@ -4,64 +4,10 @@ android:layout_height="match_parent" android:orientation="vertical"> - <LinearLayout - android:orientation="horizontal" - android:layout_width="match_parent" - android:layout_height="wrap_content"> - - <Button - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="|<-" - android:id="@+id/first_page_button" - android:onClick="onFirstPageButton" - android:minWidth="60dp" /> - - <Button - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="<" - android:id="@+id/previous_page_button" - android:onClick="onPreviousPageButton" - android:minWidth="60dp" /> - - <Button - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text=">" - android:id="@+id/next_page_button" - android:onClick="onNextPageButton" - android:minWidth="60dp" /> - - <Button - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="->|" - android:id="@+id/last_page_button" - android:onClick="onLastPageButton" - android:minWidth="60dp" /> - - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceMedium" - android:text="Medium Text" - android:textColor="@color/white" - android:id="@+id/page_text" /> - - </LinearLayout> - - <LinearLayout - android:orientation="vertical" + <com.artifex.mupdf.android.DocView + android:id="@+id/doc_view" android:layout_width="match_parent" android:layout_height="match_parent"> - - <ImageView - android:id="@+id/image_view" - android:layout_width="match_parent" - android:layout_height="match_parent"> - </ImageView> - - </LinearLayout> + </com.artifex.mupdf.android.DocView> </LinearLayout> |