public final class LinearGradient extends Paint
The LinearGradient
class fills a shape
with a linear color gradient pattern. The user may specify two or
more gradient colors, and this Paint will provide an interpolation
between each color.
The application provides an array of Stop
s specifying how to distribute
the colors along the gradient. The Stop#offset
variable must be
the range 0.0 to 1.0 and act like keyframes along the gradient.
The offsets mark where the gradient should be exactly a particular color.
If the proportional variable is set to true then the start and end points of the gradient should be specified relative to the unit square (0.0->1.0) and will be stretched across the shape. If the proportional variable is set to false, then the start and end points should be specified in the local coordinate system of the shape and the gradient will not be stretched at all.
The two filled rectangles in the example below will render the same. The one on the left uses proportional coordinates to specify the end points of the gradient. The one on the right uses absolute coordinates. Both of them fill the specified rectangle with a horizontal gradient that varies from black to red
// object bounding box relative (proportional = true) Stop[] stops = new Stop[] { new Stop(0, Color.BLACK), new Stop(1, Color.RED)}; LinearGradient lg1 = new LinearGradient(0, 0, 1, 0, true, CycleMethod.NO_CYCLE, stops); Rectangle r1 = new Rectangle(0, 0, 100, 100); r1.setFill(lg1); // user space relative (proportional: = false) LinearGradient lg2 = new LinearGradient(125, 0, 225, 0, false, CycleMethod.NO_CYCLE, stops); Rectangle r2 = new Rectangle(125, 0, 100, 100); r2.setFill(lg2);
Constructor and Description |
---|
LinearGradient(double startX,
double startY,
double endX,
double endY,
boolean proportional,
CycleMethod cycleMethod,
List<Stop> stops)
Creates a new instance of LinearGradient.
|
LinearGradient(double startX,
double startY,
double endX,
double endY,
boolean proportional,
CycleMethod cycleMethod,
Stop... stops)
Creates a new instance of LinearGradient.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object obj)
Indicates whether some other object is "equal to" this one.
|
CycleMethod |
getCycleMethod()
Defines which of the following cycle method is applied
to the
LinearGradient : CycleMethod.NO_CYCLE ,
CycleMethod.REFLECT , or CycleMethod.REPEAT . |
double |
getEndX()
Defines the X coordinate of the gradient axis end point.
|
double |
getEndY()
Defines the Y coordinate of the gradient axis end point.
|
double |
getStartX()
Defines the X coordinate of the gradient axis start point.
|
double |
getStartY()
Defines the Y coordinate of the gradient axis start point.
|
List<Stop> |
getStops()
A sequence of 2 or more
Stop values specifying how to distribute
the colors along the gradient. |
int |
hashCode()
Returns a hash code for this
LinearGradient object. |
boolean |
isOpaque()
Gets whether this Paint is completely opaque.
|
boolean |
isProportional()
Indicates whether start and end locations are proportional or absolute.
|
String |
toString()
Returns a string representation of this
LinearGradient object. |
static LinearGradient |
valueOf(String value)
Creates a linear gradient value from a string representation.
|
public LinearGradient(double startX, double startY, double endX, double endY, boolean proportional, CycleMethod cycleMethod, Stop... stops)
startX
- the X coordinate of the gradient axis start pointstartY
- the Y coordinate of the gradient axis start pointendX
- the X coordinate of the gradient axis end pointendY
- the Y coordinate of the gradient axis end pointproportional
- whether the coordinates are proportional
to the shape which this gradient fillscycleMethod
- cycle method applied to the gradientstops
- the gradient's color specificationpublic LinearGradient(double startX, double startY, double endX, double endY, boolean proportional, CycleMethod cycleMethod, List<Stop> stops)
startX
- the X coordinate of the gradient axis start pointstartY
- the Y coordinate of the gradient axis start pointendX
- the X coordinate of the gradient axis end pointendY
- the Y coordinate of the gradient axis end pointproportional
- whether the coordinates are proportional
to the shape which this gradient fillscycleMethod
- cycle method applied to the gradientstops
- the gradient's color specificationpublic final double getStartX()
public final double getStartY()
public final double getEndX()
public final double getEndY()
public final boolean isProportional()
[0..1]
are scaled to map
onto the bounds of the shape that the gradient fills.
If this flag is false, then the coordinates are specified in the local
coordinate system of the node.public final CycleMethod getCycleMethod()
LinearGradient
: CycleMethod.NO_CYCLE
,
CycleMethod.REFLECT
, or CycleMethod.REPEAT
.public final List<Stop> getStops()
Stop
values specifying how to distribute
the colors along the gradient. These values must be in the range
0.0 to 1.0. They act like key frames along the gradient: they mark where
the gradient should be exactly a particular color.
Each stop in the sequence must have an offset that is greater than the previous stop in the sequence.
The list is unmodifiable and will throw
UnsupportedOperationException
on each modification attempt.
public final boolean isOpaque()
Paint
public boolean equals(Object obj)
public int hashCode()
LinearGradient
object.public String toString()
LinearGradient
object.public static LinearGradient valueOf(String value)
The format of the string representation is based on JavaFX CSS specification for linear gradient which is
linear-gradient( [ [from <point> to <point>| [ to <side-or-corner>], ]? [ [ repeat | reflect ], ]? <color-stop>[, <color-stop>]+)where
<side-or-corner> = [left | right] || [top | bottom] <point> = [ [ <length> <length> ] | [ <percentage> | <percentage> ] ] <color-stop> = [ <color> [ <percentage> | <length>]? ]
Currently length can be only specified in px, the specification of unit can be omited.
Format of color representation is the one used in Color.web(String color)
.
The linear-gradient keyword can be omited.
For additional information about the format of string representation, see the
CSS Reference Guide.
LinearGradient g
= LinearGradient.valueOf("linear-gradient(from 0% 0% to 100% 100%, red 0% , blue 30%, black 100%)");
LinearGradient g
= LinearGradient.valueOf("from 0% 0% to 100% 100%, red 0% , blue 30%, black 100%");
LinearGradient g
= LinearGradient.valueOf("linear-gradient(from 0px 0px to 200px 0px, #00ff00 0%, 0xff0000 50%, 0x1122ff40 100%)");
LinearGradient g
= LinearGradient.valueOf("from 0px 0px to 200px 0px, #00ff00 0%, 0xff0000 50%, 0x1122ff40 100%");
value
- the string to convertLinearGradient
object holding the value represented
by the string argument.NullPointerException
- if the value
is null
IllegalArgumentException
- if the value
cannot be parsedCopyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.