diff options
Diffstat (limited to 'tools/layoutlib/bridge/src/android/graphics/LinearGradient.java')
-rw-r--r-- | tools/layoutlib/bridge/src/android/graphics/LinearGradient.java | 72 |
1 files changed, 40 insertions, 32 deletions
diff --git a/tools/layoutlib/bridge/src/android/graphics/LinearGradient.java b/tools/layoutlib/bridge/src/android/graphics/LinearGradient.java index 1a0dc05..ea9eae9 100644 --- a/tools/layoutlib/bridge/src/android/graphics/LinearGradient.java +++ b/tools/layoutlib/bridge/src/android/graphics/LinearGradient.java @@ -21,51 +21,59 @@ import java.awt.Color; import java.awt.Paint; public class LinearGradient extends Shader { - + private GradientPaint mGradientPaint; - /** Create a shader that draws a linear gradient along a line. - @param x0 The x-coordinate for the start of the gradient line - @param y0 The y-coordinate for the start of the gradient line - @param x1 The x-coordinate for the end of the gradient line - @param y1 The y-coordinate for the end of the gradient line - @param colors The colors to be distributed along the gradient line - @param positions May be null. The relative positions [0..1] of - each corresponding color in the colors array. If this is null, - the the colors are distributed evenly along the gradient line. - @param tile The Shader tiling mode - */ - public LinearGradient(float x0, float y0, float x1, float y1, - int colors[], float positions[], TileMode tile) { + /** + * Create a shader that draws a linear gradient along a line. + * + * @param x0 The x-coordinate for the start of the gradient line + * @param y0 The y-coordinate for the start of the gradient line + * @param x1 The x-coordinate for the end of the gradient line + * @param y1 The y-coordinate for the end of the gradient line + * @param colors The colors to be distributed along the gradient line + * @param positions May be null. The relative positions [0..1] of each + * corresponding color in the colors array. If this is null, the + * the colors are distributed evenly along the gradient line. + * @param tile The Shader tiling mode + */ + public LinearGradient(float x0, float y0, float x1, float y1, int colors[], float positions[], + TileMode tile) { if (colors.length < 2) { throw new IllegalArgumentException("needs >= 2 number of colors"); } if (positions != null && colors.length != positions.length) { throw new IllegalArgumentException("color and position arrays must be of equal length"); } - + // FIXME implement multi color linear gradient + if (colors.length == 2) { + mGradientPaint = new GradientPaint(x0, y0, new Color(colors[0], true /* hasalpha */), + x1, y1, new Color(colors[1], true /* hasalpha */), tile != TileMode.CLAMP); + } } - /** Create a shader that draws a linear gradient along a line. - @param x0 The x-coordinate for the start of the gradient line - @param y0 The y-coordinate for the start of the gradient line - @param x1 The x-coordinate for the end of the gradient line - @param y1 The y-coordinate for the end of the gradient line - @param color0 The color at the start of the gradient line. - @param color1 The color at the end of the gradient line. - @param tile The Shader tiling mode - */ - public LinearGradient(float x0, float y0, float x1, float y1, - int color0, int color1, TileMode tile) { - mGradientPaint = new GradientPaint(x0, y0, new Color(color0, true /* hasalpha */), - x1,y1, new Color(color1, true /* hasalpha */), tile != TileMode.CLAMP); + /** + * Create a shader that draws a linear gradient along a line. + * + * @param x0 The x-coordinate for the start of the gradient line + * @param y0 The y-coordinate for the start of the gradient line + * @param x1 The x-coordinate for the end of the gradient line + * @param y1 The y-coordinate for the end of the gradient line + * @param color0 The color at the start of the gradient line. + * @param color1 The color at the end of the gradient line. + * @param tile The Shader tiling mode + */ + public LinearGradient(float x0, float y0, float x1, float y1, int color0, int color1, + TileMode tile) { + mGradientPaint = new GradientPaint(x0, y0, new Color(color0, true /* hasalpha */), x1, y1, + new Color(color1, true /* hasalpha */), tile != TileMode.CLAMP); } - - //---------- Custom Methods - + + // ---------- Custom Methods + + @Override public Paint getPaint() { return mGradientPaint; } } - |