Класс LinearGradientPaint
- Все реализованные интерфейсы:
-
Paint,Transparency
public final class LinearGradientPaint extends MultipleGradientPaint
LinearGradientPaint предоставляет способ заполнения Shape линейным цветовым градиентом. Пользователь может указать два или более цветов градиента, и этот класс обеспечит интерполяцию между каждым цветом. Пользователь также указывает начальную и конечную точки, которые определяют, где в пространстве пользователя должен начинаться и заканчиваться цветовой градиент. Пользователь должен предоставить массив чисел с плавающей точкой, определяющий распределение цветов по градиенту. Эти значения должны быть в диапазоне от 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 при заполнении пространства за пределами начальной и конечной точек, установив CycleMethod в REFLECTION или REPEAT. Расстояния между любыми двумя цветами в любой из отражённых или повторённых копий градиента такие же, как и расстояние между теми же двумя цветами между начальной и конечной точками. Обратите внимание, что могут возникнуть незначительные отклонения в расстояниях из-за дискретизации с точностью до пикселя. Если метод цикла не указан, 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%.
Это изображение демонстрирует примерный код выше для каждого из трёх методов цикла:
- С момента:
- 1.6
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.awt.MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod
Краткое описание полей
Поля, объявленные в интерфейсе java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinearGradientPaint |
Создаёт LinearGradientPaint с методом повторения по умолчанию и цветовым пространством NO_CYCLE. |
LinearGradientPaint |
Создаёт LinearGradientPaint с цветовым пространством по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint с методом повторения по умолчанию и цветовым пространством NO_CYCLE. |
LinearGradientPaint |
Создаёт LinearGradientPaint с цветовым пространством по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PaintContext |
createContext |
Создаёт и возвращает PaintContext, используемый для создания линейного цветового градиента. |
Point2D |
getEndPoint() |
Возвращает копию конечной точки оси градиента. |
Point2D |
getStartPoint() |
Возвращает копию начальной точки оси градиента. |
Методы, объявленные в классе java.awt.MultipleGradientPaint
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency
Подробное описание конструкторов
LinearGradientPaint
public LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
LinearGradientPaint с методом повторения по умолчанию и цветовым пространством NO_CYCLE. - Параметры:
-
startX- координата X точки начала градиента в пространстве пользователя -
startY- координата Y точки начала градиента в пространстве пользователя -
endX- координата X точки конца градиента в пространстве пользователя -
endY- координата Y точки конца градиента в пространстве пользователя -
fractions- значения от 0.0 до 1.0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению - Исключения:
-
NullPointerException- если массивfractionsnull, или массивcolorsnull, -
IllegalArgumentException- если точки начала и конца совпадают, или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)
LinearGradientPaint с методом повторения по умолчанию и цветовым пространством SRGB. - Параметры:
-
startX- координата X точки начала градиента в пространстве пользователя -
startY- координата Y точки начала градиента в пространстве пользователя -
endX- координата X точки конца градиента в пространстве пользователя -
endY- координата Y точки конца градиента в пространстве пользователя -
fractions- значения от 0.0 до 1.0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению -
cycleMethod- метод повторения:NO_CYCLE,REFLECT, илиREPEAT - Исключения:
-
NullPointerException- если массивfractionsnull, или массивcolorsnull, или массивcycleMethodnull -
IllegalArgumentException- если точки начала и конца совпадают, илиfractions.length != colors.length, или размер массиваcolorsменьше 2, или значениеfractionsменьше 0.0 или больше 1.0, или значенияfractionsне указаны в строго возрастающем порядке
LinearGradientPaint
public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors)
LinearGradientPaint с методом повторения по умолчанию и цветовым пространством NO_CYCLE. - Параметры:
-
start- точка начала градиента в пространстве пользователя -
end- точка конца градиента в пространстве пользователя -
fractions- значения от 0.0 до 1.0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению - Исключения:
-
NullPointerException- если одна из точек null, или массивfractionsnull, или массивcolorsnull -
IllegalArgumentException- если точки начала и конца совпадают, илиfractions.length != colors.length, или размер массиваcolorsменьше 2, или значениеfractionsменьше 0.0 или больше 1.0, или значенияfractionsне указаны в строго возрастающем порядке
Линейный градиент
public LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)
LinearGradientPaint с пространством цветов по умолчанию.- Параметры:
-
start- начальная точка оси градиента в пространстве пользователя -
end- конечная точка оси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению -
cycleMethod- либоNO_CYCLE, либоREFLECT, либоREPEAT - Исключения:
-
NullPointerException- если одна из точек равна null, или массивfractionsравен null, или массивcolorsравен null, илиcycleMethodравен null -
IllegalArgumentException- если начальная и конечная точки совпадают, илиfractions.length != colors.length, или размер массиваcolorsменьше 2, или значениеfractionsменьше 0,0 или больше 1,0, или значенияfractionsне указаны в строго возрастающем порядке
Линейный градиент
@ConstructorProperties({"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- начальная точка оси градиента в пространстве пользователя -
end- конечная точка оси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению -
cycleMethod- либоNO_CYCLE, либоREFLECT, либоREPEAT -
colorSpace- пространство цветов для интерполяции, либоSRGB, либоLINEAR_RGB -
gradientTransform- преобразование, применяемое к градиенту - Исключения:
-
NullPointerException- если одна из точек равна null, или массивfractionsравен null, или массивcolorsравен null, илиcycleMethodравен null, илиcolorSpaceравен null, илиgradientTransformравен null -
IllegalArgumentException- если начальная и конечная точки совпадают, илиfractions.length != colors.length, или размер массиваcolorsменьше 2, или значениеfractionsменьше 0,0 или больше 1,0, или значенияfractionsне указаны в строго возрастающем порядке
Подробное описание методов
createContext
public PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)
PaintContext, используемый для генерации линейного цветового градиента. См. specification для получения информации об обработке null-параметров в интерфейсе Paint.- Параметры:
-
cm- предпочтительнаяColorModel, представляющая наиболее удобный для вызывающего объекта формат получения данных пикселей, илиnull, если предпочтения нет. -
deviceBounds- прямоугольник устройства, определяющий область графического примитива, который отрисовывается. -
userBounds- прямоугольник пользователя, определяющий область графического примитива, который отрисовывается. -
transform-AffineTransformиз пространства пользователя в пространство устройства. -
hints- набор подсказок, которые контекст может использовать при выборе между различными вариантами отрисовки. - Возвращаемое значение:
PaintContextдля генерации цветовых узоров.- См. также:
getStartPoint
public Point2D getStartPoint()
- Возвращает:
- объект
Point2D, являющийся копией точки, которая задаёт начало первого цвета этогоLinearGradientPaint
getEndPoint
public Point2D getEndPoint()
- Возвращает:
- объект
Point2D, являющийся копией точки, которая задаёт начало последнего цвета этогоLinearGradientPaint
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/java/awt/LinearGradientPaint.html