Управление svg-рисунками

SberMobile предлагает универсальную поддержку для SVG-рисунков (Scalable Vector Graphics - масштабируемая векторная графика). Она включает такие свойства, как прозрачность, произвольные геометрические тела, эффекты фильтров (тени, подсветка и пр.) и анимация. Любой SVG-рисунок можно масштабировать, повернуть, отразить зеркально без утраты его качества. Специальная библиотека включает в себя огромную коллекцию SVG-рисунков  с дополнительной встроенной функциональностью. Эти специальные рисунки имеют динамические свойства для изменения различных визуальных аспектов: цвета, толщины линии, анимации и пр.

В этом уроке показано, как управлять SVG-рисунками и использовать их для создания интерактивных пользовательских интерфейсов. Здесь Вы научитесь создавать виджет с двумя SVG-компонентами: вентилятором, контролируемым кнопкой.

1.создание виджета

Чтобы создать пустой виджет, дважды кликните по узлу Виджеты () в системном дереве или выберите во всплывающем меню действие Создать виджет (). В открывшемся окне установите свойство Имя виджета - svgManipulation и Описание виджета - SVG Manipulation, кликните OK. Это переместит Вас к редактору виджетов с пустым шаблоном виджета.

2. Добавление svg-рисунков

Во-первых, установите свойство компоновки Корневой панели на абсолютную - так Вы не будете ограничены в разметке компонентов. Мы используем корневую панель для простоты, но Вы можете также использовать в качестве контейнера и отдельную панель.

Перетащите компонент Векторный рисунок ()из палитры компонентов в корневую панель рабочей формы виджета:

Теперь загрузите файл с изображением вентилятора из библиотеки: нажмите кнопку Выбрать (Choose) в свойстве файла SVG, а затем найдите и откройте нужный файл в появившемся диалоговом окне.

Установите положение компонента и его размер: координата X и координата Y равны 0, ширина и высота - 500. Таким образом, вентилятор будет занимать все пространство виджета.

 

 

Перетащите еще один компонент Векторного рисунка ()из палитры компонентов в рабочую форму. Затем загрузите фал изображения кнопки из библиотеки, как описано ранее. Измените размер и поместите его в левый нижний угол: установите значение координаты X и координаты Y равным 410, свойства ширины и высоты - 90. А теперь перед нами вентилятор с кнопкой:

3. Переименование компонентов

Давайте для простоты идентификации переименуем наши компоненты. Правой кнопкой мыши кликните по компоненту (или по имени компонента в Дереве ресурсов) и выберите в появившемся меню элемент Переименовать.

Присвойте имена компонентам fan и button.

4. Анимация вентилятора

Сначала заставьте кнопку включать вентилятор. SVG-изображение вентилятора имеет свойство Состояние, которое активирует и деактивирует анимацию  вращения. Давайте создадим привязку для этого свойства так, чтобы щелчок по кнопке отвечал за переключение состояния анимации вентилятора. Чтобы это выполнить, щелкните правой кнопкой мыши в свойстве вентилятора Состояние в редакторе свойств и выберите элемент во всплывающем меню Привязать свойство. Должно появиться диалоговое окно Привязать свойство.  

Свойство Цель уже установлено на form/fan:state. Кликните по кнопке [...] внутри поля Выражение, чтобы отредактировать текст выражения интерактивно в Конструкторе выражений. Во-первых, найдите свойство Состояние вентилятора в дереве Компонентов редактора выражений, дважды кликните по нему, чтобы вставить ссылку. Во-вторых, добавьте == 'on' ? 'off' : 'on' к выражению, кликните OK, чтобы разрешить диалоговое окно Конструктора выражений. Итоговое выражение вернет инверсию значения свойства Состояния вентилятора после его вычисления.

Затем переключитесь в поле Активатор и кликните [...], чтобы открыть диалоговое окно Активатор. Выберите вкладку Событие виджета, а затем установите поле Контекст как button , а Событие как mousePressed. Кликните OK для подтверждения. Этот активатор будет запускать привязку при каждом клике по кнопке.

Убедитесь, что свойство Событие отмечено в диалоговом окне Привязать свойство. Удостоверьтесь, что все свойства имеют такие же значения, что и на скриншоте, и кликните OK:

5. Анимация кнопки

А теперь давайте разрешим кнопке загораться зеленым светом, когда вентилятор включен. Правой кнопкой мыши щелкните по свойству кнопки Цвет в Редакторе свойств и выберите во всплывающем меню элемент Привязать свойство. Установите свойства привязки аналогичным образом, как описано ранее, так, чтобы все значения соответствовали значениям на скриншоте (см ниже) и кликните OK:

Выражение включает функцию цвета, которая возвращает цвет с назначенными значениями красного, зеленого и синего цветов. Чтобы вставить функции в выражение, можно использовать диалоговое окно Выборщик функций, которое открывается кнопкой Функции в диалоговом окне Конструктора выражений:

6. Сохранение и запуск виджета

Кликните Готово (), чтобы завершить редактирование и сохранить виджет. В Системном дереве должен появиться контекст виджета  () по управлению SVG. Чтобы увидеть виджет в действии, выберите во всплывающем меню действие Запустить виджет ().

А теперь можно нажать на кнопку и увидеть, как работает вентилятор.

В этом уроке мы показали, как создавать интерактивные компоненты. А теперь Вы можете сочетать элементы управления и использовать их для построения собственных комплексных интерфейсов.