Примечание. На этой странице описан один из этапов настройки циферблата вручную. Если вы хотите создать циферблат с помощью инструмента WYSIWYG (что вы видите, то и получаете), сначала ознакомьтесь с руководством по Watch Face Studio.
В этом руководстве описаны инструменты, необходимые для настройки циферблата в формате Watch Face Format, приведены рекомендации по структуре проекта и пошаговые инструкции по использованию инструментов для создания этой структуры.
Начало работы с Android Studio
Проще всего начать создавать циферблаты вручную в Android Studio. Поддержка циферблатов доступна в канале Canary.
- Нажмите File (Файл) > New Project (Новый проект).
- В разделе Wear OS выберите Базовый циферблат.
Это позволит создать структуру, необходимую для полноценной работы циферблата.
Структура проекта
При создании циферблата в формате Watch Face Format набор Android App Bundle, содержащий файл циферблата, должен быть полностью отделен от набора Android App Bundle, содержащего логику приложения Wear OS. Некоторые магазины приложений, в том числе Google Play, не позволяют загружать наборы Android App Bundle, в которых есть и логика Wear OS, и собственный циферблат.
Как указать версию Watch Face Format
В файле манифеста нового приложения (AndroidManifest.xml) проверьте свойство application, которое указывает на использование формата Watch Face Format.
<property android:name="com.google.wear.watchface.format.version" android:value="4" />
Некоторые функции Watch Face Format доступны только в более поздних версиях. Установите для этого свойства минимальное значение, поддерживающее нужные вам функции, чтобы обеспечить максимальную совместимость с устройствами. Также задайте соответствующее значение для свойства minSdkVersion. Подробнее о том, как настроить версии приложения…
Элемент <application> также должен включать атрибут android:hasCode="false". Наборы Watch Face Format содержат только ресурсы и не могут включать код.
Как добавить метаданные циферблата
В каталоге ресурсов res/xml вашего приложения есть файл watch_face_info.xml. Здесь можно задать метаданные циферблата:
<WatchFaceInfo> <Preview value="@drawable/preview" /> <Category value="CATEGORY_EMPTY" /> <AvailableInRetail value="true" /> <MultipleInstancesAllowed value="true" /> <Editable value="true" /> <FlavorsSupported value="true" /> </WatchFaceInfo>
Поля в этом файле содержат следующие данные:
Preview- Содержит ссылку на объект drawable, который включает изображение предварительного просмотра циферблата.
CategoryОпределяет категорию циферблата. Должна быть строкой или ссылкой на строку, например
@string/ref_name. Каждый производитель устройств может задать свой набор категорий циферблатов.Значение по умолчанию:
empty_category_meta. В этом случае циферблат будет сгруппирован с другими циферблатами без категории в нижней части экрана выбора циферблата.AvailableInRetailДоступен ли циферблат в деморежиме для магазина устройства. Должно быть логическим значением или ссылкой на логическое значение, например
@bool/watch_face_available_in_retail.Значение по умолчанию:
falseMultipleInstancesAllowedМожно ли добавить несколько избранных циферблатов. Должно быть логическим значением или ссылкой на логическое значение, например
@bool/watch_face_multiple_instances_allowed.Значение по умолчанию:
falseEditableЯвляется ли циферблат редактируемым. Это означает, что у циферблата есть настройка или хотя бы одно нефиксированное осложнение. Позволяет показывать или скрывать кнопку Изменить для циферблата в списке избранного.
Значение по умолчанию: false.
Как указать название циферблата
В файле манифеста приложения (AndroidManifest.xml) задайте атрибут android:label для элемента application, указав название циферблата.
Как объявить сведения о циферблате
Структура базового документа циферблата WFF выглядит следующим образом:
<WatchFace width="450" height="450"> <Scene> <!-- Content to be rendered --> </Scene> </WatchFace>
Шаблон Android Studio содержит базовый документ в формате res/raw/watchface.xml. Чтобы поддерживать экраны разных форм и размеров, задекларируйте поддержку нескольких форм и размеров.
Корневой элемент всегда имеет значение WatchFace. Элементы height и width определяют
размер координатного пространства, используемого на циферблате. Циферблат масштабируется в соответствии с устройством, на котором он используется. Элементы height и width не
представляют фактические пиксели.
Формат Watch Face Format позволяет упорядочить информацию о циферблате:
- Метаданные, например время и количество шагов, которые показываются на изображении предпросмотра циферблата.
- Настройки пользователя, например разные цветовые темы для циферблата, элементы, которые можно включать и отключать, и выбор между несколькими элементами. В версии 2 формата Watch Face Format появились варианты, которые могут быть указаны в конфигурации пользователя. Каждый вариант содержит предустановленную конфигурацию пользователя, в которой указаны тип и стиль элементов, отображаемых на циферблате вместе со временем. Эти настройки позволяют создавать визуально привлекательные группы элементов. В сопутствующем приложении Wear OS пользователи видят разные варианты циферблата в прокручиваемом ряду.
- Сцена, содержащая визуальные элементы циферблата. Элементы, которые появляются ближе к концу сцены, располагаются поверх других элементов. Обычно порядок следующий:
- Стрелки аналоговых часов или текст на цифровых часах.
- Дополнительные элементы, которые показывают дополнительную информацию, например день недели или количество шагов пользователя.
- Другие изображения, которые делают циферблат более интересным или украшают его, например изображение палаточного лагеря.
- Группы элементов, позволяющие изменять несколько элементов одновременно. В сцене можно создавать варианты этих групп, чтобы выборочно скрывать или изменять контент, когда система переходит в режим энергосбережения.
Атрибуты имеют строгую типизацию и правила в отношении частоты и допустимых значений, что позволяет избежать большинства ошибок при создании циферблата.
Как заявить о поддержке форм циферблата (необязательно)
Этот шаг необходим, только если вы хотите, чтобы циферблаты разных размеров вели себя по-разному. Если вы хотите, чтобы циферблат масштабировался в зависимости от размера часов, этот шаг можно пропустить.
В каталоге ресурсов res/xml приложения укажите набор поддерживаемых форм циферблата в файле watch_face_shapes.xml:
<WatchFaces> <WatchFace shape="CIRCLE" width="300" height="300" file="@raw/watchface_basic"/> <WatchFace shape="CIRCLE" width="450" height="450" file="@raw/watchface"/> </WatchFaces>
Затем задайте внешний вид и поведение циферблата для каждой формы.
Если вы не указали файл фигур, вам понадобится только один файл:watchface.xml.
В примере из этого раздела необработанные XML-файлы будут выглядеть так:
res/raw/watchface.xmlres/raw/watchface_basic.xml
Как указать издателя циферблата (необязательно)
При необходимости в файле манифеста приложения можно объявить произвольную строку, которую можно использовать для идентификации издателя циферблата или названия и версии инструмента, который вы используете:
<property android:name="com.google.wear.watchface.format.publisher" android:value="{toolName}-{toolVersion}" />
Как проверить циферблат на наличие ошибок и оценить его производительность
Во время разработки и перед загрузкой в Google Play проверьте циферблат на наличие синтаксических ошибок с помощью встроенного валидатора Watch Face Format в Android Studio. Это позволяет автоматически выделять ошибки в коде и учитывать версию.
Также проверьте, соответствует ли циферблат требованиям к использованию памяти, с помощью инструмента memory footprint.
- Подробнее о том, как оптимизировать использование памяти и как проверить использование памяти перед публикацией…
- Подробнее о том, как использовать валидатор XML в процессе разработки…
Как создать набор App Bundle для приложения с циферблатом
Проще всего создавать и развертывать циферблаты с помощью Android Studio, в которой есть встроенная поддержка конфигураций запуска циферблатов. После того как вы нажмете кнопку Run (Запустить), Android Studio развернет циферблат на устройстве или эмуляторе и установит его в качестве активного.
Примеры циферблатов
Другие примеры проектов Watch Face Format можно найти на GitHub.
Рекомендуем
- Примечание. Текст ссылки показывается, когда JavaScript отключен.
- AAPT2
- Основы Jetpack Compose
- Начало работы с CameraX