Используйте масштабируемый пользовательский интерфейс для создания сложных, динамичных и многопанельных интерфейсов для пользователей автомобилей. Масштабируемый пользовательский интерфейс:
Обеспечивает гибкую систему окон.
Минимизирует инженерные риски, затраты и сложности, связанные с набором тестов совместимости (CTS) для реализаций пользовательского интерфейса.
Масштабируемый пользовательский интерфейс поддерживает широкий спектр современных конструкций автомобильных информационно-развлекательных систем (IVI), требующих динамического расположения окон.
Преимущества и соответствие
Преимущества масштабируемого пользовательского интерфейса включают в себя:
Снижение риска тестирования: фреймворк предварительно сертифицирован и соответствует требованиям CTS, что исключает основной риск сбоев тестирования на поздних этапах программного цикла. Масштабируемый пользовательский интерфейс может сэкономить месяцы инженерных усилий и ускорить достижение соответствия.
Больше гибкости в проектировании: проверенная возможность воссоздания множества сложных существующих моделей автомобильных окон. Масштабируемый пользовательский интерфейс поддерживает амбициозные и высокодифференцированные проекты.
Меньше сложности реализации: абстракция в высокоуровневую модель XML, управляемую конфигурацией, снижает барьер для входа в пользовательскую логику работы с окнами.
Повышенная производительность: масштабируемый пользовательский интерфейс построен на высокопроизводительной платформе оконного интерфейса и полностью интегрирован со стандартными функциями Android. Переходы плавные и могут быть оптимизированы.
Основные строительные блоки
Масштабируемый пользовательский интерфейс сводит к минимуму необходимость в специфичном для OEM-производителей коде, упрощает обновление и снижает риски запуска за счет устранения подводных камней и уменьшения проблем с сертификацией.
Подход на основе XML решает распространенные проблемы при управлении сложными оконными системами в AAOS, такие как проблемы, связанные с точным позиционированием, конфликтами Z-порядка и фокусом приложения.
Масштабируемый пользовательский интерфейс предоставляет эти основные строительные блоки.
Панель
Панель — это основной прямоугольный контейнер на экране. Каждая панель связана с выделенной корневой задачей для независимого управления. Панель может содержать задачи приложения ( TaskPanel
) или контент, основанный на представлениях, например, виджеты ( DecorPanel
). Подробнее см. в разделе Настройка панели .
Вариант
Вариант определяет конкретное визуальное состояние панели и включает такие свойства, как bounds
(положение и размер), visibility
, layer
(Z-порядок) и радиус corner
. Одна панель может иметь несколько вариантов, например, opened
, closed
» или minimized
. Подробнее см. в разделе «Использование варианта для проектирования визуального состояния» .
Переход
Переход определяет, как панель переходит из текущего состояния fromVariant
в новое состояние toVariant
. Переход может быть вызван Event
и может определять анимацию, которую панель проходит при изменении состояния. Панель должна перейти из текущего состояния в toVariant
. Для синхронизации все переходы анимируются и координируются основным диспетчером окон.
- Событие: триггер для инициирования изменения пользовательского интерфейса. Производитель оборудования или система могут заранее определить триггер. Например,
_System_OnHomeEvent
,_System_TaskOpenEvent
или нажатие пользовательской кнопки навигации.
Например, масштабируемый пользовательский интерфейс использует события для запуска переходов. Эти переходы анимируют панель из одного варианта в другой, отображая динамические изменения в пользовательском интерфейсе. Эти изменения передаются другим системным приложениям для корректировки содержимого по мере необходимости. Определяя взаимосвязи пользовательского интерфейса в XML, вы можете:
Укажите сложное поведение пользовательского интерфейса: определите сложные взаимодействия пользовательского интерфейса.
Организация оконных систем: управление расположением и наслоением окон.
Реализуйте визуальные темы: используйте единый брендинг и эстетику.
Уменьшите сложность кода: сведите к минимуму необходимость в обширной разработке собственного кода.
Более подробную информацию см. в разделе Настройка перехода .
Кнопки системного интерфейса
Помимо запуска намерений, CarSystemBarButtons
может запускать событие ScalableUI при нажатии с использованием атрибутов event
, selectedEvent
и unselectedEvent
.
event
описывает событие, которое должно произойти при нажатии кнопки. Если требуется более детальное управление событием, используйте атрибуты selectedEvent
и unselectedEvent
, чтобы указать событие, которое должно произойти при нажатии или снятии нажатия кнопки соответственно.
Когда следует внедрять системный пользовательский интерфейс
В этом разделе описывается оптимальное использование масштабируемого пользовательского интерфейса.
- Создавайте постоянные многопанельные макеты
- Реализуйте динамичную домашнюю сцену
- Применять контекстные наложения
- Проектирование сложных взаимодействий панелей
Создавайте постоянные многопанельные макеты
Создайте многозонный интерфейс, в котором разные области экрана будут постоянно выделены для определённых функций. Например, для управления мультимедиа, климат-контроля или полноэкранной карты.
Используйте TaskPanels
для основных приложений (например, навигации) и DecorPanels
для элементов пользовательского интерфейса в виде представлений, которые должны размещаться между TaskPanels
.
Реализуйте динамичную домашнюю сцену
Реализуйте сцену «Домой» , состоящую из нескольких одновременно видимых интерактивных панелей приложений. Например, карты, медиаплеера и сетки приложений.
Чтобы перевести все соответствующие панели в opened
или исходное состояние default
, настройте _System_HomeEvent
.
Применять контекстные наложения
Размещайте элементы пользовательского интерфейса, не относящиеся к приложению, такие как контекстные виджеты, пользовательский брендинг и полосы перетаскивания, которые можно анимировать в соответствии с задачами приложения.
Используйте DecorPanels
для всех исключительно декоративных элементов или элементов, содержащих виджеты. Если виджет содержит полнофункциональное, готовое к запуску приложение, оптимально использовать Panel
> TaskPanel
. Используйте DecorPanels
для элементов пользовательского интерфейса, основанных на представлениях, когда слои должны быть синхронизированы с слоями TaskPanel
.
Проектирование сложных взаимодействий панелей
Разрабатывайте расширенные пользовательские действия, такие как динамическое изменение размера панели приложений или настройка представлений комбинации приборов на основе содержимого основного дисплея.
Определите пользовательские Events
для запуска определенных, нестандартных для системы Transitions
.