Медиа относится к набору системных приложений (например, Dialer и App Launcher). Эти приложения имеют общие стили и ресурсы, определенные на разных уровнях структуры AOSP.
-
framework/base
. Здесь определяются все базовые стили Android. -
packages/services/Car/car_product/overlay
. Содержит наложения времени сборки, которые изменяют стандартные ресурсы платформы/базы для создания внешнего вида AOSP Android Automotive OS. OEM-производители могут отказаться от этого наложения и использовать свои собственные. -
packages/apps/Car/libs/car-ui-lib
. Эта библиотека определяет компоненты и ресурсы AAOS, общие для системных приложений и отдельных приложений, предназначенных для настройки. Подробнее см. в Руководстве по интеграции автомобильной библиотеки пользовательского интерфейса . -
packages/apps/Car/libs/car_app_common
. Общие цвета и стили, общие для приложений автомобильной системы. OEM-производители могут использовать наложения для настройки этих элементов (аналогичноcar_product/overlay
описанному выше). -
packages/apps/Car/libs/car_media_common
. Содержит элементы, совместно используемые Media и другими мультимедийными пользовательскими интерфейсами. Например, виджет «Медиа» на главном экране. packages/apps/Car/Media.
Все системные приложения используют свою собственную тему, которая наследуется отTheme.CarUi
, как определено вcar-ui-lib
.
Android Automotive AOSP предоставляет две презентации мультимедиа.
- Медиа интерфейс. Позволяет пользователям входить в систему, просматривать содержимое и использовать подробные элементы управления воспроизведением.
- Медиа-виджет на главном экране. Позволяет использовать основные функции управления воспроизведением мультимедиа на главном экране.
Пользовательский интерфейс мультимедиа
Этот рисунок описывает структуру пользовательского интерфейса мультимедиа:
Рис. 1. Пользовательский интерфейс мультимедиа
Дополнительные сведения о рекомендациях по пользовательскому интерфейсу и пользовательскому интерфейсу, а также о пространственной структуре различных компонентов мультимедиа см. в разделе Пространственная модель .
AppBarView: панель инструментов
Панель инструментов пользовательского интерфейса мультимедиа — это компонент, совместно используемый с другими системными приложениями, такими как номеронабиратель и радио. Чтобы узнать, как настроить панель инструментов, см. Руководство по интеграции автомобильной библиотеки пользовательского интерфейса .
Максимальный размер обложки носителя
Чтобы уведомить мультимедийные приложения о максимальном размере загружаемого изображения, вы можете наложитьmedia_items_bitmap_max_size_px
в своей системе. Для этого отправьте EXTRA_MEDIA_ART_SIZE_HINT_PIXELS
в качестве корневой подсказки. В результате вы сэкономите трафик при загрузке изображений. Дополнительные сведения см. в разделе MediaConstants на сайте developer.android.com.Просмотрите фрагмент
Browse состоит в основном из Car UI RecyclerView , который обрабатывает положение полосы прокрутки, стрелки и поля и может просматривать элементы разных типов, такие как заголовки, элементы сетки, элементы сетки значков, элементы списка и элементы списка значков.
Свернутые элементы управления воспроизведением
При отображении фрагмента обзора и выборе элемента мультимедиа отображается свернутое представление элементов управления воспроизведением . На следующем рисунке показана структура этого представления:
Рис. 2. Свернутые элементы управления воспроизведением
Список просмотра
Разработчики могут использовать набор подсказок по стилю (см. Применение стилей содержимого ) для настройки представления содержимого просмотра мультимедиа. OEM-производители должны придерживаться этих стилей, адаптируя представление к своей системе дизайна.
Поддерживаемые типы элементов и соответствующие макеты расположены следующим образом:
-
LIST_ITEM
(media_browse_list_item.xml
). Обычно используется для эпизодов в подкасте, таких как элементы плейлиста и избранное. -
ICON_LIST_ITEM
(media_browse_list_icons_item.xml
). Используется для категорий или пунктов меню, в которых изображение, включенное в элемент мультимедиа, является не настоящей обложкой альбома, а значком. -
GRID_ITEM
(media_browse_grid_item.xml
). Обычно используется для воспроизводимых элементов, таких как песни или списки воспроизведения. -
ICON_GRID_ITEM
(media_browse_grid_icons_item.xml
). Используется для категорий, подобныхICON_LIST_ITEM
. -
media_browse_header_item.xml
HEADER
. Используется для организации элементов мультимедиа в разделы.
Экран воспроизведения
Чтобы отобразить этот экран, разверните свернутые элементы управления воспроизведением:
- В настоящее время воспроизводятся метаданные медиафайла (включая заголовок и подзаголовок).
- Полное управление воспроизведением.
- Очередь воспроизведения (используется для отображения недавно воспроизведенных или следующих элементов для воспроизведения).
Компоненты экрана воспроизведения показаны на рисунках ниже.
Рисунок 3. Экран воспроизведения
Экран воспроизведения не разделяет панель инструментов с остальной частью приложения. Вместо этого элементы в верхней части экрана индивидуально управляются этим экраном.
Элементы управления воспроизведением
Экран воспроизведения включает в себя расширенный набор элементов управления воспроизведением, организованных в ряды элементов управления . Второстепенная строка (отображаемая ниже как строка сверху) отображается только в том случае, если места в первой строке недостаточно для отображения всех действий, возвращаемых мультимедийным приложением из PlaybackStateCompat#getActions()
.
Рисунок 4. Элементы управления воспроизведением.
OEM-производители могут настраивать значки стандартных действий, но они должны предоставлять настраиваемые значки действий, предоставляемые мультимедийными приложениями.
Медиа-виджет на главном экране
Этот виджет реализован как фрагмент в car-media-common
. Этот фрагмент включает в себя уменьшенную версию описанного выше Экрана воспроизведения. Применяются все те же правила и возможности настройки.
Рис. 5. Медиа-виджет главного экрана
Кнопка выбора приложений, показанная выше, использует функцию переключения , описанную в разделе Пользовательский процесс переключения источника мультимедиа .
Чтобы использовать текущий значок источника мультимедиа для кнопки выбора приложений, наложите флаг use_media_source_logo_for_app_selector
, определенный в файле platform/packages/apps/Car/libs/car-media-common/res/values/bools.xml
, и установите для него значение true
. С этим изменением значок источника мультимедиа на противоположной стороне панели инструментов приложения будет скрыт. Настройка также применяется к приложению Media Center и эталонному приложению Radio.
Рис. 6. Кнопка выбора мультимедийного приложения
Расположение кнопок «Воспроизведение», «Пауза» и «Стоп»
Расположение кнопки «Воспроизведение/Пауза/Стоп» можно настроить для «Сейчас воспроизводится» и свернутого представления элементов управления воспроизведением. Оба макета определены в packages/apps/Car/libs/car-media-common/res/layout/
.
Чтобы настроить макеты кнопок, примените наложения времени сборки к play_pause_stop_button_layout.xml
и minimized_play_pause_stop_button_layout.xml
.
Выделите текущий элемент в очереди воспроизведения
Состояние текущего элемента очереди воспроизведения установлено на selected
, поэтому его можно настроить с помощью ресурсов состояния, таких как списки состояний цвета (см. Ресурс списка состояний цвета ) и отрисовываемые списки состояний (см. Ресурсы Drawable ). Чтобы применить необходимые изменения стиля, вы можете переопределить макет элемента очереди ( packages/apps/Car/Media/res/layout/queue_list_item.xml ).
Вы также можете отобразить значок рядом с текущим элементом очереди воспроизведения:
- Наложите логический флаг
show_icon_for_now_playing_queue_list_item
определенный в packages/apps/Car/Media/res/values/bools.xml, наtrue
.Чтобы скрыть таймер воспроизведения, установите для
show_time_for_now_playing_queue_list_item
значениеfalse
. - Используйте отображаемое состояние, например передний план или фон корневого представления элемента (см. packages/apps/Car/Media/res/layout/queue_list_item.xml ) или отдельное представление в иерархии представлений элемента.
Рисунок 7. Выделенный текущий элемент в очереди воспроизведения