From ca4459d88fa75b988918c30a9d024a3534c7c1a2 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 17 Oct 2012 16:44:53 +0400 Subject: only block pager movement if width doesn't fit on current scale --- src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java | 8 ++++++-- src/org/fox/ttcomics/ComicFragment.java | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java b/src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java index 1dd873c..f958bb9 100644 --- a/src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java +++ b/src/it/sephiroth/android/library/imagezoom/ImageViewTouch.java @@ -34,7 +34,7 @@ public class ImageViewTouch extends ImageViewTouchBase { private OnImageViewTouchDoubleTapListener doubleTapListener; public interface OnScaleChangedListener { - public void onScaleChanged(float scale); + public void onScaleChanged(float scale, boolean widthFits); } protected OnScaleChangedListener mScaleChangedListener; @@ -113,7 +113,11 @@ public class ImageViewTouch extends ImageViewTouchBase { break; } if (mScaleChangedListener != null) { - mScaleChangedListener.onScaleChanged(mCurrentScaleFactor); + RectF bitmapRect = getBitmapRect(); + + boolean widthFits = getWidth() >= (bitmapRect.right - bitmapRect.left); + + mScaleChangedListener.onScaleChanged(mCurrentScaleFactor, widthFits); } return true; } diff --git a/src/org/fox/ttcomics/ComicFragment.java b/src/org/fox/ttcomics/ComicFragment.java index 2221b3a..eb40627 100644 --- a/src/org/fox/ttcomics/ComicFragment.java +++ b/src/org/fox/ttcomics/ComicFragment.java @@ -86,11 +86,11 @@ public class ComicFragment extends Fragment { image.setImageBitmap(loadImage(pager.getArchive(), m_page)); image.setOnScaleChangedListener(new ImageViewTouch.OnScaleChangedListener() { @Override - public void onScaleChanged(float scale) { + public void onScaleChanged(float scale, boolean widthFits) { ViewPager pager = (ViewPager) getActivity().findViewById(R.id.comics_pager); if (pager != null) { - pager.setPagingEnabled(scale - 1.0f < 0.01); + pager.setPagingEnabled(widthFits); } } }); -- cgit v1.2.3