Класс 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 с методом повторения по умолчанию и цветовым пространством SRGB.
- Параметры:
-
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 с цветовым пространством по умолчанию.
- Параметры:
-
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 с методом повторения по умолчанию и цветовым пространством SRGB.
- Параметры:
-
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не указаны в строго возрастающем порядке
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, или массивfractionsnull, или массивcolorsnull, илиcycleMethodnull -
IllegalArgumentException- если начальная и конечная точки совпадают, илиfractions.length != colors.length, или размер массиваcolorsменьше 2, или значениеfractionsменьше 0,0 или больше 1,0, или значенияfractionsне указаны в строго возрастающем порядке
LinearGradientPaint
@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- начальная точка оси градиента в пространстве пользователя -
end- конечная точка оси градиента в пространстве пользователя -
fractions- числа от 0,0 до 1,0, определяющие распределение цветов по градиенту -
colors- массив цветов, соответствующих каждому дробному значению -
cycleMethod- либоNO_CYCLE, либоREFLECT, либоREPEAT -
colorSpace- цветовое пространство для интерполяции, либоSRGB, либоLINEAR_RGB -
gradientTransform- преобразование, применяемое к градиенту - Исключения:
-
NullPointerException- если одна из точек null, или массивfractionsnull, или массивcolorsnull, илиcycleMethodnull, илиcolorSpacenull, илиgradientTransformnull -
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 для получения информации об обработке параметров null.
- Параметры:
-
cm- предпочтительныйColorModel, представляющий наиболее удобный для вызывающего объекта формат для получения данных пикселей, илиnullесли нет предпочтения. -
deviceBounds- область в пространстве устройства, ограничивающая графический примитив, который отображается. -
userBounds- область в пространстве пользователя, ограничивающая графический примитив, который отображается. -
transform-AffineTransformот пространства пользователя к пространству устройства. -
hints- набор подсказок, которые объект контекста может использовать для выбора между альтернативными способами отрисовки. - Возвращает:
- контекст для генерации цветовых узоров.
- См. также:
-
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.