From e5be1d7a397db08a4dd75c66bdbbc6e2b61baaa8 Mon Sep 17 00:00:00 2001 From: Diego Perez Date: Tue, 2 Jun 2015 11:14:53 +0100 Subject: [PATCH] Fix for shadows on theme editor If the preferred ColorModel doesn't support alpha, the shadows are incorrectly rendered. In the theme editor on Linux, the graphics device object doesn't support alpha so we need to use a different color model. We default to ARGB which works fine. Change-Id: I3e71e3d086fa4975a9149d36792e574813f37dfd --- .../bridge/src/android/graphics/LinearGradient_Delegate.java | 4 +++- .../bridge/src/android/graphics/RadialGradient_Delegate.java | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/tools/layoutlib/bridge/src/android/graphics/LinearGradient_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/LinearGradient_Delegate.java index 703719c93f4fd..cbc30c3b378e4 100644 --- a/tools/layoutlib/bridge/src/android/graphics/LinearGradient_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/LinearGradient_Delegate.java @@ -23,6 +23,8 @@ import com.android.tools.layoutlib.annotations.LayoutlibDelegate; import android.graphics.Shader.TileMode; +import java.awt.image.ColorModel; + /** * Delegate implementing the native methods of android.graphics.LinearGradient * @@ -158,7 +160,7 @@ public final class LinearGradient_Delegate extends Gradient_Delegate { java.awt.image.ColorModel colorModel) { mCanvasMatrix = canvasMatrix; mLocalMatrix = localMatrix; - mColorModel = colorModel; + mColorModel = colorModel.hasAlpha() ? colorModel : ColorModel.getRGBdefault(); } @Override diff --git a/tools/layoutlib/bridge/src/android/graphics/RadialGradient_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/RadialGradient_Delegate.java index 6edb14082f082..750580b692e3c 100644 --- a/tools/layoutlib/bridge/src/android/graphics/RadialGradient_Delegate.java +++ b/tools/layoutlib/bridge/src/android/graphics/RadialGradient_Delegate.java @@ -23,6 +23,8 @@ import com.android.tools.layoutlib.annotations.LayoutlibDelegate; import android.graphics.Shader.TileMode; +import java.awt.image.ColorModel; + /** * Delegate implementing the native methods of android.graphics.RadialGradient * @@ -146,7 +148,7 @@ public class RadialGradient_Delegate extends Gradient_Delegate { java.awt.image.ColorModel colorModel) { mCanvasMatrix = canvasMatrix; mLocalMatrix = localMatrix; - mColorModel = colorModel; + mColorModel = colorModel.hasAlpha() ? colorModel : ColorModel.getRGBdefault(); } @Override