aboutsummaryrefslogtreecommitdiff
path: root/sample/src
diff options
context:
space:
mode:
authorDavid Morrissey <davemorrissey@gmail.com>2014-05-30 12:38:10 +0100
committerDavid Morrissey <davemorrissey@gmail.com>2014-05-30 12:38:10 +0100
commitae862190026dc7800f7abac31c5c6436866cbbc3 (patch)
tree3553b21fb16587a9893def4138103d0d51a77c5e /sample/src
parent87ac81516aaa50f47ef540aeffa6eeca1a39a1e0 (diff)
downloadsubsampling-scale-image-view-ae862190026dc7800f7abac31c5c6436866cbbc3.tar.gz
Better and simplified support for state restore on rotate
Diffstat (limited to 'sample/src')
-rw-r--r--sample/src/com/davemorrissey/labs/subscaleview/sample/PageFragment.java41
1 files changed, 14 insertions, 27 deletions
diff --git a/sample/src/com/davemorrissey/labs/subscaleview/sample/PageFragment.java b/sample/src/com/davemorrissey/labs/subscaleview/sample/PageFragment.java
index 7d9cf97..9a6172c 100644
--- a/sample/src/com/davemorrissey/labs/subscaleview/sample/PageFragment.java
+++ b/sample/src/com/davemorrissey/labs/subscaleview/sample/PageFragment.java
@@ -16,7 +16,6 @@ limitations under the License.
package com.davemorrissey.labs.subscaleview.sample;
-import android.graphics.PointF;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
@@ -25,16 +24,14 @@ import android.view.View.OnClickListener;
import android.view.View.OnLongClickListener;
import android.view.ViewGroup;
import android.widget.Toast;
+import com.davemorrissey.labs.subscaleview.ImageViewState;
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView;
import com.davemorrissey.labs.subscaleview.sample.R.id;
public class PageFragment extends Fragment implements OnClickListener, OnLongClickListener {
- private static final String STATE_SCALE = "state-scale";
- private static final String STATE_CENTER_X = "state-center-x";
- private static final String STATE_CENTER_Y = "state-center-y";
- private static final String STATE_ORIENTATION = "state-orientation";
- private static final String STATE_ASSET = "state-asset";
+ private static final String BUNDLE_STATE = "state";
+ private static final String BUNDLE_ASSET = "asset";
private int orientation = 0;
@@ -51,29 +48,23 @@ public class PageFragment extends Fragment implements OnClickListener, OnLongCli
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.page, container, false);
+ ImageViewState imageViewState = null;
if (savedInstanceState != null) {
- if (asset == null && savedInstanceState.containsKey(STATE_ASSET)) {
- asset = savedInstanceState.getString(STATE_ASSET);
+ if (asset == null && savedInstanceState.containsKey(BUNDLE_ASSET)) {
+ asset = savedInstanceState.getString(BUNDLE_ASSET);
}
- if (savedInstanceState.containsKey(STATE_ORIENTATION)) {
- orientation = savedInstanceState.getInt(STATE_ORIENTATION);
+ if (savedInstanceState.containsKey(BUNDLE_STATE)) {
+ imageViewState = (ImageViewState)savedInstanceState.getSerializable(BUNDLE_STATE);
+ orientation = imageViewState.getOrientation();
}
}
rootView.findViewById(id.rotate).setOnClickListener(this);
if (asset != null) {
SubsamplingScaleImageView imageView = (SubsamplingScaleImageView)rootView.findViewById(id.imageView);
- imageView.setOrientation(orientation);
- imageView.setImageAsset(asset);
+ imageView.setImageAsset(asset, imageViewState);
imageView.setOnClickListener(this);
imageView.setOnLongClickListener(this);
-
- if (savedInstanceState != null &&
- savedInstanceState.containsKey(STATE_SCALE) &&
- savedInstanceState.containsKey(STATE_CENTER_X) &&
- savedInstanceState.containsKey(STATE_CENTER_Y)) {
- imageView.setScaleAndCenter(savedInstanceState.getFloat(STATE_SCALE), new PointF(savedInstanceState.getFloat(STATE_CENTER_X), savedInstanceState.getFloat(STATE_CENTER_Y)));
- }
}
return rootView;
@@ -105,17 +96,13 @@ public class PageFragment extends Fragment implements OnClickListener, OnLongCli
super.onSaveInstanceState(outState);
View rootView = getView();
if (rootView != null) {
+ outState.putString(BUNDLE_ASSET, asset);
SubsamplingScaleImageView imageView = (SubsamplingScaleImageView)rootView.findViewById(id.imageView);
- outState.putFloat(STATE_SCALE, imageView.getScale());
- PointF center = imageView.getCenter();
- if (center != null) {
- outState.putFloat(STATE_CENTER_X, center.x);
- outState.putFloat(STATE_CENTER_Y, center.y);
+ ImageViewState state = imageView.getState();
+ if (state != null) {
+ outState.putSerializable(BUNDLE_STATE, imageView.getState());
}
- outState.putString(STATE_ASSET, asset);
- outState.putInt(STATE_ORIENTATION, orientation);
}
}
-
}