diff options
author | Tony Wickham <twickham@google.com> | 2017-02-27 13:30:20 -0800 |
---|---|---|
committer | Tony <twickham@google.com> | 2017-03-01 16:36:04 -0800 |
commit | 6c82867a7ea3a95a19d6cec7d1fe164d234d2cb6 (patch) | |
tree | a57698edcf4ac0da9541e6e657c1c7ac9e2ff0d1 /src/com/android/launcher3/graphics/ShadowGenerator.java | |
parent | cf18c3c2d14b54896e51fec829ae2d89642a59eb (diff) | |
download | android_packages_apps_Trebuchet-6c82867a7ea3a95a19d6cec7d1fe164d234d2cb6.tar.gz android_packages_apps_Trebuchet-6c82867a7ea3a95a19d6cec7d1fe164d234d2cb6.tar.bz2 android_packages_apps_Trebuchet-6c82867a7ea3a95a19d6cec7d1fe164d234d2cb6.zip |
Add shadow to badges
- Add static method to ShadowGenerator to generate a
circle Bitmap with a shadow.
- Move setColorScale() from DragView to Themes, and
use it to apply color to the shadowed Bitmap.
Bug: 35744066
Change-Id: I8d1da528bbf94dc83851f0b4016361ed9f8d5349
Diffstat (limited to 'src/com/android/launcher3/graphics/ShadowGenerator.java')
-rw-r--r-- | src/com/android/launcher3/graphics/ShadowGenerator.java | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/com/android/launcher3/graphics/ShadowGenerator.java b/src/com/android/launcher3/graphics/ShadowGenerator.java index 31276ecc0..6c603c971 100644 --- a/src/com/android/launcher3/graphics/ShadowGenerator.java +++ b/src/com/android/launcher3/graphics/ShadowGenerator.java @@ -83,6 +83,38 @@ public class ShadowGenerator { return result; } + public static Bitmap createCircleWithShadow(int circleColor, int diameter) { + + float shadowRadius = diameter * 1f / 32; + float shadowYOffset = diameter * 1f / 16; + + int radius = diameter / 2; + + Canvas canvas = new Canvas(); + Paint blurPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + blurPaint.setMaskFilter(new BlurMaskFilter(shadowRadius, Blur.NORMAL)); + + int center = Math.round(radius + shadowRadius + shadowYOffset); + int size = center * 2; + Bitmap result = Bitmap.createBitmap(size, size, Config.ARGB_8888); + canvas.setBitmap(result); + + // Draw ambient shadow, center aligned within size + blurPaint.setAlpha(AMBIENT_SHADOW_ALPHA); + canvas.drawCircle(center, center, radius, blurPaint); + + // Draw key shadow, bottom aligned within size + blurPaint.setAlpha(KEY_SHADOW_ALPHA); + canvas.drawCircle(center, center + shadowYOffset, radius, blurPaint); + + // Draw the circle + Paint drawPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG); + drawPaint.setColor(circleColor); + canvas.drawCircle(center, center, radius, drawPaint); + + return result; + } + public static ShadowGenerator getInstance(Context context) { Preconditions.assertNonUiThread(); synchronized (LOCK) { |