diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/camera/ui/FilmStripView.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/com/android/camera/ui/FilmStripView.java b/src/com/android/camera/ui/FilmStripView.java index de57296bc..bc56333d2 100644 --- a/src/com/android/camera/ui/FilmStripView.java +++ b/src/com/android/camera/ui/FilmStripView.java @@ -566,6 +566,12 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener { mView.setTranslationY(transY); } + void resetTransform() { + mView.setScaleX(FULL_SCREEN_SCALE); + mView.setScaleY(FULL_SCREEN_SCALE); + mView.setTranslationX(0f); + mView.setTranslationY(0f); + } } public FilmStripView(Context context) { @@ -1173,9 +1179,30 @@ public class FilmStripView extends ViewGroup implements BottomControlsListener { mDrawArea.right = r; mDrawArea.bottom = b; + resetZoomView(); layoutChildren(); } + /** + * Clears the translation and scale that has been set on the view, cancels any loading + * request for image partial decoding, and hides zoom view. + * This is needed for when there is a layout change (e.g. when users re-enter the app, + * or rotate the device, etc). + */ + private void resetZoomView() { + if (!mController.isZoomStarted()) { + return; + } + ViewItem current = mViewItem[mCurrentItem]; + if (current == null) { + return; + } + mScale = FULL_SCREEN_SCALE; + current.resetTransform(); + mController.cancelLoadingZoomedImage(); + mZoomView.setVisibility(GONE); + } + // Keeps the view in the view hierarchy if it's camera preview. // Remove from the hierarchy otherwise. private void checkForRemoval(ImageData data, View v) { |