SurfaceWidget
Контейнер с композируемой поверхностью: фон, многослойные текстуры, шейдеры, рамка и радиус скругления.
Обзор
SurfaceWidget — основа визуальной системы оформления UniGUI. Вместо привязки к конкретным классам отрисовщиков каждый SurfaceWidget включает компонуемую поверхность Surface.
Источником фона может выступать сплошной цвет, текстура или процедурный GLSL-шейдер, переключаемый динамически через код, XML или правила темы StylePack без замены экземпляра виджета.
Текстуры и слои оверлеев
- Базовый фон: Настраивается методами
background(color),backgroundTexture(handle)илиbackgroundShader(handle). - Nine-Slice слайсинг: Включается через
backgroundTextureFit(ImageFit.NINE_SLICE)иsliceBorders(n)для масштабируемых панелей без искажения углов. - Оверлейные текстуры: Добавление дополнительных текстурных слоёв поверх фона через
overlayTexture(handle)с индивидуальным тинтом и UV. - Анимации и переходы: Цвета фона, рамки, толщина и радиус скругления поддерживают плавные интерполяции (
animateBackgroundColor,animateRadiusи др.).
Настройка карточки с поверхностью
Box card = new Box()
.background(ColorView.ofHex("#1A1D24"))
.border(ColorView.ofHex("#3A3F4D"))
.borderWidth(1.5f)
.radius(8.0f);
card.addChild(content);
Связанные ссылки
API
SurfaceWidget::backgroundVisible(boolean)
Видимость фона
Включает или выключает отрисовку заливки и текстур фона.
| Параметр | Тип | Описание |
|---|---|---|
backgroundVisible |
boolean |
true для отрисовки фона |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::backgroundVisible()
Проверка видимости фона
Возвращает, включена ли отрисовка фона.
Возвращает boolean: true, если фон видим.
SurfaceWidget::background(ColorView)
Установить фон
Задаёт цвет заливки фона и автоматически включает видимость фона.
| Параметр | Тип | Описание |
|---|---|---|
color |
ColorView |
цвет заливки фона или null для прозрачного |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::borderColor(ColorView)
Цвет рамки
Задаёт цвет рамки и автоматически включает видимость рамки.
| Параметр | Тип | Описание |
|---|---|---|
color |
ColorView |
цвет рамки |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::border(ColorView)
Установить рамку
Задаёт цвет обводки рамки и автоматически включает видимость рамки.
| Параметр | Тип | Описание |
|---|---|---|
color |
ColorView |
цвет обводки рамки |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::borderVisible(boolean)
Видимость рамки
Включает или выключает отрисовку контура рамки.
| Параметр | Тип | Описание |
|---|---|---|
borderVisible |
boolean |
true для отрисовки рамки |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::borderWidth(float)
Толщина рамки
Задаёт толщину линии рамки в UI-пикселях.
| Параметр | Тип | Описание |
|---|---|---|
borderWidth |
float |
Толщина в UI-пикселях |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::radius(float)
Радиус скругления
Задаёт радиус скругления углов в UI-пикселях.
| Параметр | Тип | Описание |
|---|---|---|
radius |
float |
Радиус в UI-пикселях |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::boxVisualEnabled(boolean)
Включение поверхности
Включает или выключает всю визуальную отрисовку поверхности (фон, рамка, текстуры).
| Параметр | Тип | Описание |
|---|---|---|
boxVisualEnabled |
boolean |
true для включения поверхности |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::themeEnabled(boolean)
Поддержка темы
Управляет тем, могут ли стили глобальной Theme переопределять свойства поверхности.
| Параметр | Тип | Описание |
|---|---|---|
themeEnabled |
boolean |
true для поддержки темы |
Возвращает SurfaceWidget: этот виджет для fluent-настройки.
SurfaceWidget::surface()
Получить Surface
Возвращает модель поверхности Surface.
Возвращает Surface: экземпляр модели Surface.