diff options
author | nicolasroard <nicolasroard@google.com> | 2013-03-09 11:18:43 -0800 |
---|---|---|
committer | nicolasroard <nicolasroard@google.com> | 2013-03-11 10:33:31 -0700 |
commit | 28bf7ac129344ca6306d83fc114759c9cf923806 (patch) | |
tree | 998b953d768c6b59f36b7063a8e7228fb758a07a /src/com/android/gallery3d/filtershow/imageshow | |
parent | 976e017fa90c7134ef62cd69f61bbc08315b6042 (diff) | |
download | android_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.java | 23 |
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); } |