summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/graphics/FixedScaleDrawable.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/graphics/FixedScaleDrawable.java')
-rw-r--r--src/com/android/launcher3/graphics/FixedScaleDrawable.java41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/com/android/launcher3/graphics/FixedScaleDrawable.java b/src/com/android/launcher3/graphics/FixedScaleDrawable.java
new file mode 100644
index 000000000..4be4bd552
--- /dev/null
+++ b/src/com/android/launcher3/graphics/FixedScaleDrawable.java
@@ -0,0 +1,41 @@
+package com.android.launcher3.graphics;
+
+import android.annotation.TargetApi;
+import android.content.res.Resources;
+import android.content.res.Resources.Theme;
+import android.graphics.Canvas;
+import android.graphics.drawable.ColorDrawable;
+import android.graphics.drawable.DrawableWrapper;
+import android.os.Build;
+import android.util.AttributeSet;
+
+import org.xmlpull.v1.XmlPullParser;
+
+/**
+ * Extension of {@link DrawableWrapper} which scales the child drawables by a fixed amount.
+ */
+@TargetApi(Build.VERSION_CODES.N)
+public class FixedScaleDrawable extends DrawableWrapper {
+
+ // TODO b/33553066 use the constant defined in MaskableIconDrawable
+ private static final float LEGACY_ICON_SCALE = .7f * .6667f;
+
+ public FixedScaleDrawable() {
+ super(new ColorDrawable());
+ }
+
+ @Override
+ public void draw(Canvas canvas) {
+ int saveCount = canvas.save(Canvas.MATRIX_SAVE_FLAG);
+ canvas.scale(LEGACY_ICON_SCALE, LEGACY_ICON_SCALE,
+ getBounds().exactCenterX(), getBounds().exactCenterY());
+ super.draw(canvas);
+ canvas.restoreToCount(saveCount);
+ }
+
+ @Override
+ public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs) { }
+
+ @Override
+ public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs, Theme theme) { }
+}