diff options
author | Michael Jurka <mikejurka@google.com> | 2013-08-27 15:48:58 +0200 |
---|---|---|
committer | Michael Jurka <mikejurka@google.com> | 2013-08-29 18:14:29 +0200 |
commit | fe09cb7fe3ec1ab3e7aabd2d0415de61df31c4db (patch) | |
tree | 4c14f71b68779fc152bf3b7615cc829ec3355e60 /src/com/android/launcher3/CropView.java | |
parent | 4caf298a2c9d861d69f5a47b747ada911b125b6d (diff) | |
download | android_packages_apps_Trebuchet-fe09cb7fe3ec1ab3e7aabd2d0415de61df31c4db.tar.gz android_packages_apps_Trebuchet-fe09cb7fe3ec1ab3e7aabd2d0415de61df31c4db.tar.bz2 android_packages_apps_Trebuchet-fe09cb7fe3ec1ab3e7aabd2d0415de61df31c4db.zip |
Improve wallpaper cropping
- Add support for tablets
- Add support for parallax with user-cropped images
- Improve behavior in landscape
Change-Id: I50c4bba59b03d26d595a086a9ea425894f341705
Diffstat (limited to 'src/com/android/launcher3/CropView.java')
-rw-r--r-- | src/com/android/launcher3/CropView.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/com/android/launcher3/CropView.java b/src/com/android/launcher3/CropView.java index f9046432e..25ab5cdad 100644 --- a/src/com/android/launcher3/CropView.java +++ b/src/com/android/launcher3/CropView.java @@ -17,6 +17,7 @@ package com.android.launcher3; import android.content.Context; +import android.graphics.Point; import android.graphics.RectF; import android.util.AttributeSet; import android.view.MotionEvent; @@ -79,17 +80,30 @@ public class CropView extends TiledImageView implements OnScaleGestureListener { return new RectF(cropLeft, cropTop, cropRight, cropBottom); } + public Point getSourceDimensions() { + return new Point(mRenderer.source.getImageWidth(), mRenderer.source.getImageHeight()); + } + public void setTileSource(TileSource source, Runnable isReadyCallback) { super.setTileSource(source, isReadyCallback); - updateMinScale(getWidth(), getHeight(), source); + updateMinScale(getWidth(), getHeight(), source, true); } protected void onSizeChanged(int w, int h, int oldw, int oldh) { - updateMinScale(w, h, mRenderer.source); + updateMinScale(w, h, mRenderer.source, false); } - private void updateMinScale(int w, int h, TileSource source) { + public void setScale(float scale) { synchronized (mLock) { + mRenderer.scale = scale; + } + } + + private void updateMinScale(int w, int h, TileSource source, boolean resetScale) { + synchronized (mLock) { + if (resetScale) { + mRenderer.scale = 1; + } if (source != null) { mMinScale = Math.max(w / (float) source.getImageWidth(), h / (float) source.getImageHeight()); |