summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/CropView.java
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2013-08-27 15:48:58 +0200
committerMichael Jurka <mikejurka@google.com>2013-08-29 18:14:29 +0200
commitfe09cb7fe3ec1ab3e7aabd2d0415de61df31c4db (patch)
tree4c14f71b68779fc152bf3b7615cc829ec3355e60 /src/com/android/launcher3/CropView.java
parent4caf298a2c9d861d69f5a47b747ada911b125b6d (diff)
downloadandroid_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.java20
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());