summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/filtershow/imageshow
diff options
context:
space:
mode:
authornicolasroard <nicolasroard@google.com>2013-03-09 11:18:43 -0800
committernicolasroard <nicolasroard@google.com>2013-03-11 10:33:31 -0700
commit28bf7ac129344ca6306d83fc114759c9cf923806 (patch)
tree998b953d768c6b59f36b7063a8e7228fb758a07a /src/com/android/gallery3d/filtershow/imageshow
parent976e017fa90c7134ef62cd69f61bbc08315b6042 (diff)
downloadandroid_packages_apps_Snap-28bf7ac129344ca6306d83fc114759c9cf923806.tar.gz
android_packages_apps_Snap-28bf7ac129344ca6306d83fc114759c9cf923806.tar.bz2
android_packages_apps_Snap-28bf7ac129344ca6306d83fc114759c9cf923806.zip
Add tiled background
Change-Id: I52292f6cae4f1121795829663dc4738cb38a953b
Diffstat (limited to 'src/com/android/gallery3d/filtershow/imageshow')
-rw-r--r--src/com/android/gallery3d/filtershow/imageshow/ImageShow.java23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
index f44e6f5a7..92d6c7435 100644
--- a/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
+++ b/src/com/android/gallery3d/filtershow/imageshow/ImageShow.java
@@ -28,6 +28,7 @@ import android.graphics.RectF;
import android.net.Uri;
import android.os.Handler;
import android.util.AttributeSet;
+import android.util.Log;
import android.view.GestureDetector;
import android.view.GestureDetector.OnDoubleTapListener;
import android.view.GestureDetector.OnGestureListener;
@@ -249,7 +250,7 @@ public class ImageShow extends View implements OnGestureListener,
Point translate = MasterImage.getImage().getTranslation();
float scaleFactor = MasterImage.getImage().getScaleFactor();
m.postTranslate(translate.x, translate.y);
- m.postScale(scaleFactor, scaleFactor, getWidth()/2.0f, getHeight()/2.0f);
+ m.postScale(scaleFactor, scaleFactor, getWidth() / 2.0f, getHeight() / 2.0f);
return m;
}
@@ -301,12 +302,26 @@ public class ImageShow extends View implements OnGestureListener,
@Override
public void onDraw(Canvas canvas) {
MasterImage.getImage().setImageShowSize(getWidth(), getHeight());
- canvas.save();
- // TODO: center scale on gesture
+
float cx = canvas.getWidth()/2.0f;
float cy = canvas.getHeight()/2.0f;
float scaleFactor = MasterImage.getImage().getScaleFactor();
Point translation = MasterImage.getImage().getTranslation();
+
+ Matrix scalingMatrix = new Matrix();
+ scalingMatrix.postScale(scaleFactor, scaleFactor, cx, cy);
+ scalingMatrix.preTranslate(translation.x, translation.y);
+
+ RectF unscaledClipRect = new RectF(mImageBounds);
+ scalingMatrix.mapRect(unscaledClipRect, unscaledClipRect);
+
+ canvas.save();
+ if (!unscaledClipRect.isEmpty()) {
+ canvas.clipRect(unscaledClipRect);
+ }
+
+ canvas.save();
+ // TODO: center scale on gesture
canvas.scale(scaleFactor, scaleFactor, cx, cy);
canvas.translate(translation.x, translation.y);
drawBackground(canvas);
@@ -337,6 +352,8 @@ public class ImageShow extends View implements OnGestureListener,
drawPartialImage(canvas, getGeometryOnlyImage());
canvas.restore();
+ canvas.restore();
+
drawToast(canvas);
}