java awt paint_java.awt.LinearGradientPaint

public final class LinearGradientPaint

LinearGradientPaint 类提供利用线性颜色渐变模式填充 Shape 的方式。用户可以指定两种或多种渐变颜色,并且此绘制将在颜色与颜色之间提供一个插值。用户还可以指定起始点和结束点,它们定义了颜色渐变在用户空间中的开始和结束位置。

用户必须提供一个 float 数组,指定如何沿渐变分布颜色。这些值的范围从 0.0 到 1.0,其作用与沿着渐变的关键帧类似(它们标记了渐变应完全变为某种特定颜色的位置)。

在用户没有将第一个关键帧值设置为等于 0 和/或将最后一个关键帧值设置为等于 1 的情况下,将在这些位置创建关键帧,并且第一种颜色和最后一种颜色将在这些位置处复制。因此,如果用户指定以下数组来构造渐变:

{Color.BLUE, Color.RED}, {.3f, .7f} 那么此渐变将转换为一个带有以下关键帧的渐变:

{Color.BLUE, Color.BLUE, Color.RED, Color.RED}, {0f, .3f, .7f, 1f}

在填充起始点和结束点以外的颜色时,用户也可以选择 LinearGradientPaint 应执行的动作。如果没有指定循环方法,则将默认选择 NO_CYCLE,这意味着将使用端点颜色填充剩余的区域。

colorSpace 参数允许用户指定应在哪一种颜色空间(默认 sRGB 或线性 RGB)中执行插值操作。

以下代码演示了 LinearGradientPaint 的典型用法:

Point2D start = new Point2D.Float(0, 0);

Point2D end = new Point2D.Float(50, 50);

float[] dist = {0.0f, 0.2f, 1.0f};

Color[] colors = {Color.RED, Color.WHITE, Color.BLUE};

LinearGradientPaint p =

new LinearGradientPaint(start, end, dist, colors);

此代码将创建一个 LinearGradientPaint,它插入到渐变前 20% 的红色和白色之间,以及渐变剩余 80% 的白色和蓝色之间。

此图像演示了对以上示例代码使用三种循环方法时的情形:

LinearGradientPaint.png

嵌套类摘要

字段摘要

构造方法摘要

Color[] colors)

构造一个具有默认 NO_CYCLE 重复方法和 SRGB 颜色空间的 LinearGradientPaint。

Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)

构造一个具有默认 SRGB 颜色空间的 LinearGradientPaint。

Point2D start, Point2D end, float[] fractions, Color[] colors)

构造一个具有默认 NO_CYCLE 重复方法和 SRGB 颜色空间的 LinearGradientPaint。

SRGB 颜色空间的 LinearGradientPaint。

构造方法详细信息

LinearGradientPaint

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.0 到 1.0 之间的数字,用于指定沿渐变的颜色分布

colors - 与每个小数值相对应的颜色数组

抛出:

fractions 数组为 null,或

colors 数组为 null

fractions.length != colors.length;或者

colors 大小小于 2;或者

fractions 值小于 0.0 或大于 1.0;或者没有严格按升序提供

fractions

LinearGradientPaint

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.0 到 1.0 之间的数字,用于指定沿渐变的颜色分布

colors - 与每个小数值相对应的颜色数组

cycleMethod -

NO_CYCLE、

REFLECT 或

REPEAT

抛出:

fractions 数组为 null;或者

colors 数组为 null;或者

cycleMethod 为 null

fractions.length != colors.length;或者

colors 大小小于 2;或者

fractions 值小于 0.0 或大于 1.0;或者没有严格按照升序提供

fractions

LinearGradientPaint

public LinearGradientPaint(Point2D start,

Point2D end,

float[] fractions,

Color[] colors)

构造一个具有默认

NO_CYCLE 重复方法和

SRGB 颜色空间的

LinearGradientPaint。

参数:

start - 用户空间中渐变轴的起始

Point2D

end - 用户空间中渐变轴的结束

Point2D

fractions - 0.0 到 1.0 范围内的数字,用于指定沿渐变的颜色分布

colors - 与每个小数值相对应的颜色数组

抛出:

fractions 数组为 null;或者

colors 数组为 null

fractions.length != colors.length;或者

colors 大小小于 2;或者

fractions 值小于 0.0 或大于 1.0;或者没有严格按升序提供

fractions

LinearGradientPaint

public LinearGradientPaint(Point2D start,

Point2D end,

float[] fractions,

Color[] colors,

MultipleGradientPaint.CycleMethod cycleMethod)

构造一个具有默认

SRGB 颜色空间的

LinearGradientPaint。

参数:

start - 用户空间中渐变轴的起始

Point2D

end - 用户空间中渐变轴的结束

Point2D

fractions - 0.0 到 1.0 范围内的数字,用于指定沿渐变的颜色分布

colors - 与每个小数值相对应的颜色数组

cycleMethod -

NO_CYCLE、

REFLECT 或

REPEAT

抛出:

fractions 数组为 null;或者

colors 数组为 null;或者

cycleMethod 为 null

fractions.length != colors.length;或者

colors 大小小于 2;或者

fractions 值小于 0.0 或大于 1.0;或者没有严格按升序提供

fractions

LinearGradientPaint

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.0 到 1.0 范围内的数字,用于指定沿渐变的颜色分布

colors - 与每个小数值相对应的颜色数组

cycleMethod -

NO_CYCLE、

REFLECT 或

REPEAT

colorSpace - 用于插值操作的颜色空间,该参数为

SRGB 或

LINEAR_RGB

gradientTransform - 将应用到渐变的转换

抛出:

fractions 数组为 null;或者

colors 数组为 null;或者

cycleMethod 为 null;或者

colorSpace 为 null;或者

gradientTransform 为 null

fractions.length != colors.length;或者

colors 大小小于 2;或者

fractions 值小于 0.0 或大于 1.0;或者没有严格按升序提供

fractions

方法详细信息

createContext

创建并返回用来生成颜色模式的

PaintContext。因为传递给 createContext 的 ColorModel 参数只是一个提示,所以 Paint 的实现应该接受 ColorModel 的 null 参数。注意,如果应用程序没有首选的特定 ColorModel,则为 null 的 ColorModel 参数将给予 Paint 实现完全的选择余地,使其在光栅处理中使用其首选最高效的 ColorModel。

因为 API 文档在 1.4 版本之前没有关于此项的具体描述,因此可能有一些 Paint 实现不能接受 null ColorModel 参数。如果开发人员正在编写代码将 null ColorModel 参数从任意源传递给 Paint 对象的 createContext 方法,则为了实现安全的编码,应该为这些对象构造一个非 null ColorModel,使其抛出 NullPointerException。

参数:

cm - 接收

Paint 数据的

ColorModel。这只用作一个提示。

deviceBounds - 正在呈现的图形图元的设备空间边界框

userBounds - 正在呈现的图形图元的用户空间边界框

transform - 从用户空间到设备空间的

AffineTransform

hints - 上下文对象用于选择所呈现内容的提示

返回:

生成颜色模式的

PaintContext

另请参见:

getStartPoint

public Point2D getStartPoint()

返回渐变轴起始点的副本。

返回:

Point2D 对象,它是此

LinearGradientPaint 第一种颜色着色点的副本。

getEndPoint

public Point2D getEndPoint()

返回渐变轴结束点的副本。

返回:

Point2D 对象,它是此

LinearGradientPaint 最后一种颜色着色点的副本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值