public final class LinearGradientPaint extends MultipleGradientPaint
LinearGradientPaint
类提供了一种方法来填补
Shape
与线性渐变颜色模式。用户可以指定两个或两个以上的渐变色,这种颜色将提供每个颜色之间的内插。用户还指定了开始和结束点,它定义在用户空间中的颜色渐变应该开始和结束。
用户必须提供一个浮动的数组,指定如何沿梯度分布的颜色。这些值的范围从0到1,像沿梯度的关键帧(他们的标志在梯度应该完全是一个特别的颜色)。
如果在用户没有设置第一个关键帧的值等于0和/或最后一个关键帧的值等于1,关键帧将在这些位置创建的第一个和最后一个颜色将被复制在。所以,如果一个用户指定下列数组来构建一个梯度:
{红},color.blue,颜色。{。3F、7F }。这将被转换为一个具有以下关键帧梯度:
{ color.blue、Color.BLUE、Color.red,颜色。红},{ 0F,。3F,7F,1F }。
用户也可以选择LinearGradientPaint
对象采取什么行动的时候是填充空间之外的开始和结束的CycleMethod
要么REFLECTION
或REPEAT
点。任何两种颜色在任何一个或一个重复的拷贝的任何一个或两个颜色之间的距离是相同的,因为在两个颜色之间的距离在开始和结束点之间的距离。请注意,在距离的一些微小的变化可能会发生由于采样在一个像素的粒度。如果没有循环的方法是指定的,NO_CYCLE
将默认选择,这意味着终点的颜色将被用来填补剩余的地区。
在色彩参数允许用户指定的色彩插值应该执行,默认的sRGB或线性化RGB。
下面的代码演示了LinearGradientPaint
典型用法:
point2d开始=新point2d浮子(0,0);point2d结束=新point2d浮子(50,50);浮动[ ]距离= { 0.0f,0.2F,1.0f };颜色[ ]颜色= { Color.red,color.white,颜色蓝};lineargradientpaint P =新的lineargradientpaint(开始、结束、距离、颜色);
此代码将创建一个LinearGradientPaint
插入红色和白色之间的梯度第一20%和白色和蓝色之间,剩下的80%。
此图像显示了三个周期方法中的每一个示例代码:
Paint
,
Graphics2D.setPaint(java.awt.Paint)
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
BITMASK, OPAQUE, TRANSLUCENT
Constructor and Description |
---|
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
构建一个与默认
NO_CYCLE 重复法和
SRGB 颜色空间
LinearGradientPaint 。
|
LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
构建一个与默认
SRGB 颜色空间
LinearGradientPaint 。
|
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
构建一个与默认
NO_CYCLE 重复法和
SRGB 颜色空间
LinearGradientPaint 。
|
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
构建一个与默认
SRGB 颜色空间
LinearGradientPaint 。
|
LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
构建了一个
LinearGradientPaint 。
|
Modifier and Type | Method and Description |
---|---|
PaintContext |
createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
创建并返回一个用来生成一个线性渐变颜色模式
PaintContext 。
|
Point2D |
getEndPoint()
返回一个梯度轴的结束点的副本。
|
Point2D |
getStartPoint()
返回一个梯度轴的起始点的副本。
|
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
public LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
NO_CYCLE
重复法和
SRGB
颜色空间
LinearGradientPaint
。
startX
-梯度轴起始点在用户空间的X坐标
startY
-梯度轴起始点在用户空间的Y坐标
endX
-在用户空间的梯度轴端点的X坐标
endY
-在用户空间的梯度轴端点的Y坐标
fractions
数从0到1的指定沿渐变的颜色分布
colors
-颜色数组对应的分数值
NullPointerException
-如果
fractions
数组为空,或
colors
数组是空的,
IllegalArgumentException
如果起点和终点是同一点,或
fractions.length != colors.length
,或
colors
小于2的大小,或
fractions
值小于0或大于1,或
fractions
不是严格递增的顺序设置
public LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
SRGB
颜色空间
LinearGradientPaint
。
startX
-梯度轴起始点在用户空间的X坐标
startY
-梯度轴起始点在用户空间的Y坐标
endX
-在用户空间的梯度轴端点的X坐标
endY
-在用户空间的梯度轴端点的Y坐标
fractions
数从0到1的指定沿渐变的颜色分布
colors
-颜色数组对应的分数值
cycleMethod
-
NO_CYCLE
,
REFLECT
,或
REPEAT
NullPointerException
-如果
fractions
数组为空,或
colors
数组为空,或
cycleMethod
是空的
IllegalArgumentException
如果起点和终点是同一点,或
fractions.length != colors.length
,或
colors
小于2的大小,或
fractions
值小于0或大于1,或
fractions
不是严格递增的顺序设置
public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
NO_CYCLE
重复法和
SRGB
颜色空间
LinearGradientPaint
。
start
-梯度轴开始
Point2D
在用户空间
end
-在用户空间的梯度轴端
Point2D
fractions
数从0到1的指定沿渐变的颜色分布
colors
-颜色数组对应的分数值
NullPointerException
-如果一个点是空的,或
fractions
数组为空,或
colors
数组是空的
IllegalArgumentException
如果起点和终点是同一点,或
fractions.length != colors.length
,或
colors
小于2的大小,或
fractions
值小于0或大于1,或
fractions
不是严格递增的顺序设置
public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
SRGB
颜色空间
LinearGradientPaint
。
start
-梯度轴开始
Point2D
在用户空间
end
-在用户空间的梯度轴端
Point2D
fractions
数从0到1的指定沿渐变的颜色分布
colors
-颜色数组对应的分数值
cycleMethod
-
NO_CYCLE
,
REFLECT
,或
REPEAT
NullPointerException
-如果一个点是空的,或
fractions
数组为空,或
colors
数组为空,或
cycleMethod
是空的
IllegalArgumentException
如果起点和终点是同一点,或
fractions.length != colors.length
,或
colors
小于2的大小,或
fractions
值小于0或大于1,或
fractions
不是严格递增的顺序设置
@ConstructorProperties(value={"startPoint","endPoint","fractions","colors","cycleMethod","colorSpace","transform"}) public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)
LinearGradientPaint
。
start
-梯度轴开始
Point2D
在用户空间
end
-在用户空间的梯度轴端
Point2D
fractions
数从0到1的指定沿渐变的颜色分布
colors
-颜色数组对应的分数值
cycleMethod
-
NO_CYCLE
,
REFLECT
,或
REPEAT
colorSpace
-使用插值颜色空间,要么
SRGB
或
LINEAR_RGB
gradientTransform
变换应用于梯度
NullPointerException
-如果一个点是空的,或
fractions
数组为空,或
colors
数组为空,或
cycleMethod
是无效的,或者
colorSpace
是无效的,或者
gradientTransform
是空的
IllegalArgumentException
如果起点和终点是同一点,或
fractions.length != colors.length
,或
colors
小于2的大小,或
fractions
值小于0或大于1,或
fractions
不是严格递增的顺序设置
public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
cm
-代表对方接收像素数据的首选
ColorModel
最方便的格式,或
null
如果没有偏好。
deviceBounds
-设备空间包围盒的图元被渲染。
userBounds
-用户空间包围盒的图元被渲染。
transform
-
AffineTransform
从用户空间到设备空间。
hints
-提示上下文对象可以使用之间的替代选择设置渲染。
PaintContext
。
Paint
,
PaintContext
,
ColorModel
,
Rectangle
,
Rectangle2D
,
AffineTransform
,
RenderingHints
public Point2D getStartPoint()
Point2D
对象是一个副本的点,这
LinearGradientPaint
锚第一颜色
public Point2D getEndPoint()
Point2D
对象是一个副本的点,这最后的颜色
LinearGradientPaint
锚
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.