Spec-Zone.ru › OpenJDK 8

Класс 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%.

На этом изображении показан пример кода выше для каждого из трех методов циклирования:

image showing the output of the example code
С тех пор:
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 с методом повторения по умолчанию и цветовой системой NO_CYCLE.

LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)

Создает LinearGradientPaint с цветовой системой по умолчанию SRGB.

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

Создает LinearGradientPaint с методом повторения по умолчанию и цветовой системой NO_CYCLE.

LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod)

Создает LinearGradientPaint с цветовой системой по умолчанию SRGB.

LinearGradientPaint(Point2D start, Point2D end, float[] fractions, Color[] colors, MultipleGradientPaint.CycleMethod cycleMethod, MultipleGradientPaint.ColorSpaceType colorSpace, AffineTransform gradientTransform)

Создает LinearGradientPaint.

Методы

Модификатор и тип Метод и описание
PaintContext createContext(ColorModel cm, Rectangle deviceBounds, Rectangle2D userBounds, AffineTransform transform, RenderingHints hints)

Создает и возвращает PaintContext, используемый для создания линейного цветового градиента.

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 - если массив 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 с методом повторения по умолчанию и цветовым пространством SRGB.

Параметры:
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(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, или массив 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 для получения информации об обработке параметров 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API