summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/allapps/AllAppsBackgroundDrawable.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2017-01-08 13:13:47 -0800
committerSunny Goyal <sunnygoyal@google.com>2017-01-08 13:14:51 -0800
commit260b07fa86865481ab3e1c6d4fec3ef52ba0a621 (patch)
treeb56080225da638903b20de92dabb2129e0017195 /src/com/android/launcher3/allapps/AllAppsBackgroundDrawable.java
parent2c3194e87977c06a72e54e63745f790d619e77ed (diff)
downloadandroid_packages_apps_Trebuchet-260b07fa86865481ab3e1c6d4fec3ef52ba0a621.tar.gz
android_packages_apps_Trebuchet-260b07fa86865481ab3e1c6d4fec3ef52ba0a621.tar.bz2
android_packages_apps_Trebuchet-260b07fa86865481ab3e1c6d4fec3ef52ba0a621.zip
Creating AllAppsBackgroundDrawable using DrawableFactory to allow
easier overriding using derivative projects Change-Id: I7265d888876ea0928391f76ec1bcb7d928c0f27a
Diffstat (limited to 'src/com/android/launcher3/allapps/AllAppsBackgroundDrawable.java')
-rw-r--r--src/com/android/launcher3/allapps/AllAppsBackgroundDrawable.java100
1 files changed, 51 insertions, 49 deletions
diff --git a/src/com/android/launcher3/allapps/AllAppsBackgroundDrawable.java b/src/com/android/launcher3/allapps/AllAppsBackgroundDrawable.java
index bc602f37b..c71bc3166 100644
--- a/src/com/android/launcher3/allapps/AllAppsBackgroundDrawable.java
+++ b/src/com/android/launcher3/allapps/AllAppsBackgroundDrawable.java
@@ -23,71 +23,73 @@ import android.graphics.ColorFilter;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
-
import android.view.Gravity;
+
import com.android.launcher3.R;
/**
- * A helper class to positon and orient a drawable to be drawn.
+ * This is a custom composite drawable that has a fixed virtual size and dynamically lays out its
+ * children images relatively within its bounds. This way, we can reduce the memory usage of a
+ * single, large sparsely populated image.
*/
-class TransformedImageDrawable {
- private Drawable mImage;
- private float mXPercent;
- private float mYPercent;
- private int mGravity;
- private int mAlpha;
+public class AllAppsBackgroundDrawable extends Drawable {
/**
- * @param gravity If one of the Gravity center values, the x and y offset will take the width
- * and height of the image into account to center the image to the offset.
+ * A helper class to positon and orient a drawable to be drawn.
*/
- public TransformedImageDrawable(Resources res, int resourceId, float xPct, float yPct,
- int gravity) {
- mImage = res.getDrawable(resourceId);
- mXPercent = xPct;
- mYPercent = yPct;
- mGravity = gravity;
- }
+ protected static class TransformedImageDrawable {
+ private Drawable mImage;
+ private float mXPercent;
+ private float mYPercent;
+ private int mGravity;
+ private int mAlpha;
+
+ /**
+ * @param gravity If one of the Gravity center values, the x and y offset will take the width
+ * and height of the image into account to center the image to the offset.
+ */
+ public TransformedImageDrawable(Resources res, int resourceId, float xPct, float yPct,
+ int gravity) {
+ mImage = res.getDrawable(resourceId);
+ mXPercent = xPct;
+ mYPercent = yPct;
+ mGravity = gravity;
+ }
- public void setAlpha(int alpha) {
- mImage.setAlpha(alpha);
- mAlpha = alpha;
- }
+ public void setAlpha(int alpha) {
+ mImage.setAlpha(alpha);
+ mAlpha = alpha;
+ }
- public int getAlpha() {
- return mAlpha;
- }
+ public int getAlpha() {
+ return mAlpha;
+ }
- public void updateBounds(Rect bounds) {
- int width = mImage.getIntrinsicWidth();
- int height = mImage.getIntrinsicHeight();
- int left = bounds.left + (int) (mXPercent * bounds.width());
- int top = bounds.top + (int) (mYPercent * bounds.height());
- if ((mGravity & Gravity.CENTER_HORIZONTAL) == Gravity.CENTER_HORIZONTAL) {
- left -= (width / 2);
+ public void updateBounds(Rect bounds) {
+ int width = mImage.getIntrinsicWidth();
+ int height = mImage.getIntrinsicHeight();
+ int left = bounds.left + (int) (mXPercent * bounds.width());
+ int top = bounds.top + (int) (mYPercent * bounds.height());
+ if ((mGravity & Gravity.CENTER_HORIZONTAL) == Gravity.CENTER_HORIZONTAL) {
+ left -= (width / 2);
+ }
+ if ((mGravity & Gravity.CENTER_VERTICAL) == Gravity.CENTER_VERTICAL) {
+ top -= (height / 2);
+ }
+ mImage.setBounds(left, top, left + width, top + height);
}
- if ((mGravity & Gravity.CENTER_VERTICAL) == Gravity.CENTER_VERTICAL) {
- top -= (height / 2);
+
+ public void draw(Canvas canvas) {
+ mImage.draw(canvas);
}
- mImage.setBounds(left, top, left + width, top + height);
- }
- public void draw(Canvas canvas) {
- int c = canvas.save(Canvas.MATRIX_SAVE_FLAG);
- mImage.draw(canvas);
- canvas.restoreToCount(c);
+ public Rect getBounds() {
+ return mImage.getBounds();
+ }
}
-}
-
-/**
- * This is a custom composite drawable that has a fixed virtual size and dynamically lays out its
- * children images relatively within its bounds. This way, we can reduce the memory usage of a
- * single, large sparsely populated image.
- */
-public class AllAppsBackgroundDrawable extends Drawable {
- private final TransformedImageDrawable mHand;
- private final TransformedImageDrawable[] mIcons;
+ protected final TransformedImageDrawable mHand;
+ protected final TransformedImageDrawable[] mIcons;
private final int mWidth;
private final int mHeight;