diff --git a/PdfView/src/main/java/com/sun/pdfview/PDFPage.java b/PdfView/src/main/java/com/sun/pdfview/PDFPage.java index 118991b..8c3f1dd 100644 --- a/PdfView/src/main/java/com/sun/pdfview/PDFPage.java +++ b/PdfView/src/main/java/com/sun/pdfview/PDFPage.java @@ -216,7 +216,7 @@ public class PDFPage { info.bgColor = Color.WHITE; } - image = Bitmap.createBitmap(width, height, Config.ARGB_8888); + image = Bitmap.createBitmap(width, height, Config.RGB_565); renderer = new PDFRenderer(this, info, image); // if (cache != null) { diff --git a/PdfView/src/main/java/net/sf/andpdf/pdfviewer/OnSwipeTouchListener.java b/PdfView/src/main/java/net/sf/andpdf/pdfviewer/OnSwipeTouchListener.java new file mode 100644 index 0000000..69196e1 --- /dev/null +++ b/PdfView/src/main/java/net/sf/andpdf/pdfviewer/OnSwipeTouchListener.java @@ -0,0 +1,31 @@ +package net.sf.andpdf.pdfviewer; + +import android.view.MotionEvent; + +import uk.co.senab.photoview.PhotoViewAttacher; + + +public abstract class OnSwipeTouchListener implements PhotoViewAttacher.OnSingleFlingListener { + + private static final int SWIPE_DISTANCE_THRESHOLD = 100; + private static final int SWIPE_VELOCITY_THRESHOLD = 100; + + @Override + public boolean onFling(final MotionEvent e1, final MotionEvent e2, final float velocityX, final float velocityY) { + float distanceX = e2.getX() - e1.getX(); + float distanceY = e2.getY() - e1.getY(); + if (Math.abs(distanceX) > Math.abs(distanceY) && Math.abs(distanceX) > SWIPE_DISTANCE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) { + if (distanceX > 0) + onSwipeRight(); + else + onSwipeLeft(); + return true; + } + return false; + } + + public abstract void onSwipeLeft(); + + public abstract void onSwipeRight(); + +} diff --git a/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerFragment.java b/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerFragment.java index 780d641..e3adebd 100644 --- a/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerFragment.java +++ b/PdfView/src/main/java/net/sf/andpdf/pdfviewer/PdfViewerFragment.java @@ -134,7 +134,7 @@ public class PdfViewerFragment extends Fragment { return; } if (!passwordNeeded) { - startRenderThread(mPage, mZoom); + startRenderThread(mPage); } else { hideProgressBar(); final EditText etPW = (EditText) view.findViewById(getPdfPasswordEditField()); @@ -198,7 +198,7 @@ public class PdfViewerFragment extends Fragment { return true; } - private synchronized void startRenderThread(final int page, final float zoom) { + private synchronized void startRenderThread(final int page) { if (backgroundThread != null) return; backgroundThread = new Thread(new Runnable() { public void run() { @@ -297,7 +297,7 @@ public class PdfViewerFragment extends Fragment { mGraphView.bZoomOut.setEnabled(true); - startRenderThread(mPage, mZoom); + startRenderThread(mPage); } } } @@ -317,7 +317,7 @@ public class PdfViewerFragment extends Fragment { mGraphView.bZoomIn.setEnabled(true); - startRenderThread(mPage, mZoom); + startRenderThread(mPage); } } } @@ -326,10 +326,8 @@ public class PdfViewerFragment extends Fragment { if (mPdfFile != null) { if (mPage < mPdfFile.getNumPages()) { mPage += 1; - mGraphView.bZoomOut.setEnabled(true); - mGraphView.bZoomIn.setEnabled(true); progress = ProgressDialog.show(getActivity(), "Loading", "Loading PDF Page " + mPage, true, true); - startRenderThread(mPage, mZoom); + startRenderThread(mPage); } } } @@ -338,10 +336,8 @@ public class PdfViewerFragment extends Fragment { if (mPdfFile != null) { if (mPage > 1) { mPage -= 1; - mGraphView.bZoomOut.setEnabled(true); - mGraphView.bZoomIn.setEnabled(true); progress = ProgressDialog.show(getActivity(), "Loading", "Loading PDF Page " + mPage, true, true); - startRenderThread(mPage, mZoom); + startRenderThread(mPage); } } } @@ -403,7 +399,7 @@ public class PdfViewerFragment extends Fragment { mGraphView.bZoomOut.setEnabled(true); mGraphView.bZoomIn.setEnabled(true); progress = ProgressDialog.show(getActivity(), "Loading", "Loading PDF Page " + mPage, true, true); - startRenderThread(mPage, mZoom); + startRenderThread(mPage); } } }) @@ -462,6 +458,20 @@ public class PdfViewerFragment extends Fragment { pdfZoomedImageView.setBackgroundColor(getContext().getResources().getColor(R.color.zoomed_image_view_background)); photoViewAttacher = new PhotoViewAttacher(pdfZoomedImageView); + + photoViewAttacher.setOnSingleFlingListener(new OnSwipeTouchListener() { + + @Override + public void onSwipeLeft() { + nextPage(); + } + + @Override + public void onSwipeRight() { + prevPage(); + } + + }); setPageBitmap(null); updateImage();