From 635d8f4fe771a0bb2771b23991f7ca758861b884 Mon Sep 17 00:00:00 2001 From: Diego Perez Date: Fri, 27 Feb 2015 15:31:36 +0000 Subject: Fix crash when shadowSize is 0 Change-Id: I9f131afc95a2571fbc8a737df37f43653cfbb90d (cherry picked from commit e81096458f689ab3c0c4dbab2452722c3e3623c4) --- tools/layoutlib/bridge/src/android/view/ShadowPainter.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'tools/layoutlib/bridge/src') diff --git a/tools/layoutlib/bridge/src/android/view/ShadowPainter.java b/tools/layoutlib/bridge/src/android/view/ShadowPainter.java index 38846bd..2f93bc8 100644 --- a/tools/layoutlib/bridge/src/android/view/ShadowPainter.java +++ b/tools/layoutlib/bridge/src/android/view/ShadowPainter.java @@ -34,12 +34,15 @@ public class ShadowPainter { * new image. This method attempts to mimic the same visual characteristics as the rectangular * shadow painting methods in this class, {@link #createRectangularDropShadow(java.awt.image.BufferedImage)} * and {@link #createSmallRectangularDropShadow(java.awt.image.BufferedImage)}. + *

+ * If shadowSize is less or equals to 1, no shadow will be painted and the source image will be + * returned instead. * * @param source the source image * @param shadowSize the size of the shadow, normally {@link #SHADOW_SIZE or {@link * #SMALL_SHADOW_SIZE}} * - * @return a new image with the shadow painted in + * @return an image with the shadow painted in or the source image if shadowSize <= 1 */ @NonNull public static BufferedImage createDropShadow(BufferedImage source, int shadowSize) { @@ -60,11 +63,15 @@ public class ShadowPainter { * @param shadowOpacity the opacity of the shadow, with 0=transparent and 1=opaque * @param shadowRgb the RGB int to use for the shadow color * - * @return a new image with the source image on top of its shadow + * @return a new image with the source image on top of its shadow when shadowSize > 0 or the + * source image otherwise */ @SuppressWarnings({"SuspiciousNameCombination", "UnnecessaryLocalVariable"}) // Imported code public static BufferedImage createDropShadow(BufferedImage source, int shadowSize, float shadowOpacity, int shadowRgb) { + if (shadowSize <= 0) { + return source; + } // This code is based on // http://www.jroller.com/gfx/entry/non_rectangular_shadow -- cgit v1.1