Класс 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
- См. также:
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе MultipleGradientPaint
MultipleGradientPaint.ColorSpaceType, MultipleGradientPaint.CycleMethod | Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
MultipleGradientPaint.ColorSpaceType |
Цветовое пространство, используемое для интерполяции градиента. |
static enum |
MultipleGradientPaint.CycleMethod |
Метод, используемый при рисовании за пределами границ градиента. |
Краткое описание полей
Поля, объявленные в интерфейсе Transparency
BITMASK, OPAQUE, TRANSLUCENT | Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
BITMASK |
Представляет данные изображения, для которых гарантируется полная непрозрачность с альфа-значением 1.0 либо полная прозрачность с альфа-значением 0.0. |
static final int |
OPAQUE |
Представляет данные изображения, для которых гарантируется полная непрозрачность, то есть все пиксели имеют альфа-значение 1.0. |
static final int |
TRANSLUCENT |
Представляет данные изображения, которые содержат или могут содержать произвольные альфа-значения в диапазоне от 0.0 до 1.0 включительно. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
LinearGradientPaint |
Создаёт LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint с цветовым пространством SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint с цветовым пространством SRGB по умолчанию. |
LinearGradientPaint |
Создаёт LinearGradientPaint. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
PaintContext |
createContext |
Создаёт и возвращает PaintContext, используемый для генерации линейного цветового градиента. |
Point2D |
getEndPoint() |
Возвращает копию конечной точки оси градиента. |
Point2D |
getStartPoint() |
Возвращает копию начальной точки оси градиента. |
Методы, объявленные в классе MultipleGradientPaint
getColors, getColorSpace, getCycleMethod, getFractions, getTransform, getTransparency | Модификатор и тип | Метод | Описание |
|---|---|---|
final Color[] |
getColors() |
Возвращает копию массива цветов, используемых этим градиентом. |
final MultipleGradientPaint.ColorSpaceType |
getColorSpace() |
Возвращает перечислимый тип, задающий цветовое пространство для интерполяции. |
final MultipleGradientPaint.CycleMethod |
getCycleMethod() |
Возвращает перечислимый тип, задающий поведение циклического повторения. |
final float[] |
getFractions() |
Возвращает копию массива чисел с плавающей точкой, используемого этим градиентом для вычисления распределения цветов. |
final AffineTransform |
getTransform() |
Возвращает копию преобразования, применённого к градиенту. |
final int |
getTransparency() |
Возвращает режим прозрачности объекта Paint. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API может быть удалён в будущей версии. Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно посредством вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
LinearGradientPaint
public LinearGradientPaint(float startX, float startY, float endX, float endY, float[] fractions, Color[] colors)
LinearGradientPaint с методом повторения NO_CYCLE и цветовым пространством 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 с цветовым пространством SRGB по умолчанию.- Параметры:
-
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 с методом повторения NO_CYCLE и цветовым пространством SRGB по умолчанию.- Параметры:
-
start— начальнаяPoint2Dоси градиента в пользовательском пространстве -
end— конечнаяPoint2Dоси градиента в пользовательском пространстве -
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 с цветовым пространством SRGB по умолчанию.- Параметры:
-
start— начальнаяPoint2Dоси градиента в пользовательском пространстве -
end— конечнаяPoint2Dоси градиента в пользовательском пространстве -
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— начальнаяPoint2Dоси градиента в пользовательском пространстве -
end— конечнаяPoint2Dоси градиента в пользовательском пространстве -
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, используемый для генерации линейного цветового градиента. Информацию об обработке параметров null см. в specification метода в интерфейсе Paint.- Параметры:
-
cm— предпочтительнаяColorModel, представляющая наиболее удобный для вызывающего кода формат получения пиксельных данных, илиnull, если предпочтений нет. -
deviceBounds— ограничивающий прямоугольник графического примитива в пространстве устройства. -
userBounds— ограничивающий прямоугольник графического примитива в пользовательском пространстве. -
transform—AffineTransformиз пользовательского пространства в пространство устройства. -
hints— набор подсказок, которые контекст может использовать для выбора способа визуализации. - Возвращает:
PaintContextдля генерации цветовых узоров.- См. также:
getStartPoint
public Point2D getStartPoint()
- Возвращает:
- объект
Point2D, являющийся копией точки, задающей начальный цвет этогоLinearGradientPaint
getEndPoint
public Point2D getEndPoint()
- Возвращает:
- объект
Point2D, являющийся копией точки, задающей последний цвет этогоLinearGradientPaint
© 1993, 2025, 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.