Класс LinearGradientPaint
- java.lang.Object
-
- java.awt.MultipleGradientPaint
-
- java.awt.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
- См. также:
-
Paint,Graphics2D.setPaint(java.awt.Paint)
Вложенные классы
Вложенные классы/интерфейсы, объявленные в классе java.awt.MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod Поля
Поля, объявленные в интерфейсе java.awt.Transparency
BITMASK, OPAQUE, TRANSLUCENT Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinearGradientPaint(float startX,
float startY,
float endX,
float endY,
float[] fractions,
Color[] colors) | Создаёт |
LinearGradientPaint(float startX,
float startY,
float endX,
float endY,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod) | Создаёт |
LinearGradientPaint(Point2D start,
Point2D end,
float[] fractions,
Color[] colors) | Создаёт |
LinearGradientPaint(Point2D start,
Point2D end,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod) | Создаёт |
LinearGradientPaint(Point2D start,
Point2D end,
float[] fractions,
Color[] colors,
MultipleGradientPaint.CycleMethod cycleMethod,
MultipleGradientPaint.ColorSpaceType colorSpace,
AffineTransform gradientTransform) | Создаёт |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PaintContext | createContext(ColorModel cm,
Rectangle deviceBounds,
Rectangle2D userBounds,
AffineTransform transform,
RenderingHints hints) | Создаёт и возвращает |
Point2D | getEndPoint() | Возвращает копию конечной точки оси градиента. |
Point2D | getStartPoint() | Возвращает копию начальной точки оси градиента. |
Методы, объявленные в классе java.awt.MultipleGradientPaint
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Конструкторы
LinearGradientPaint
public LinearGradientPaint(float startX,
float startY,
float endX,
float endY,
float[] fractions,
Color[] colors) Создаёт LinearGradientPaint с методом повторения по умолчанию и цветовым пространством по умолчанию.
- Параметры:
-
startX- координата X точки начала оси градиента в пространстве пользователя -
startY- координата Y точки начала оси градиента в пространстве пользователя -
endX- координата X точки конца оси градиента в пространстве пользователя -
endY- координата Y точки конца оси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению - Исключения:
-
NullPointerException- если массивfractionsравен null, или массивcolorsравен null, -
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 с методом повторения по умолчанию и цветовым пространством по умолчанию.
- Параметры:
-
startX- координата X точки начала оси градиента в пространстве пользователя -
startY- координата Y точки начала оси градиента в пространстве пользователя -
endX- координата X точки конца оси градиента в пространстве пользователя -
endY- координата Y точки конца оси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению -
cycleMethod- метод циклаNO_CYCLE,REFLECT, илиREPEAT - Исключения:
-
NullPointerException- если массивfractionsравен null, или массивcolorsравен null, или массивcycleMethodравен null -
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 с методом повторения по умолчанию и цветовым пространством по умолчанию.
- Параметры:
-
start- точка начала оси градиента в пространстве пользователя -
end- точка конца оси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению - Исключения:
-
NullPointerException- если одна из точек равна null, или массивfractionsравен null, или массивcolorsравен null -
IllegalArgumentException- если начальная и конечная точки совпадают, или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) Создаёт 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не указаны в строго возрастающем порядке
LinearGradientPaint
@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 в интерфейсе Paint для получения информации об обработке нулевых параметров.
- Параметры:
-
cm- предпочтительныйColorModel, представляющий наиболее удобный для вызывающего объекта формат для получения данных пикселей, илиnullв случае отсутствия предпочтений. -
deviceBounds- прямоугольник области устройства, отображаемой графической примитивой. -
userBounds- прямоугольник области пользователя, отображаемой графической примитивой. -
transform-AffineTransformиз пространства пользователя в пространство устройства. -
hints- набор подсказок, которые объект контекста может использовать для выбора между альтернативными методами рендеринга. - Возвращает:
PaintContextдля генерации цветовых узоров.- См. также:
-
Paint,PaintContext,ColorModel,Rectangle,Rectangle2D,AffineTransform,RenderingHints
getStartPoint
public Point2D getStartPoint()
Возвращает копию точки начала оси градиента.
- Возвращает:
- объект
Point2D, являющийся копией точки, которая задаёт начальный цвет этогоLinearGradientPaint
getEndPoint
public Point2D getEndPoint()
Возвращает копию точки конца оси градиента.
- Возвращает:
- объект
Point2D, являющийся копией точки, которая задаёт конечный цвет этогоLinearGradientPaint
© 1993, 2020, 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/11/docs/api/java.desktop/java/awt/LinearGradientPaint.html