Настройка формата циферблата

Примечание : На этой странице показан один из этапов процесса ручного управления конфигурацией циферблата. Если вы хотите создать циферблат с помощью инструмента WYSIWYG (что вы видите, то и получаете), сначала ознакомьтесь с руководствами по Watch Face Studio .

В этом руководстве описаны шаги по использованию инструментов, необходимых для настройки циферблата с помощью формата Watch Face Format, даны некоторые рекомендации по структуре проекта, а также пошаговое руководство по применению инструментов для создания такой структуры.

Начните работу с Android Studio.

Самый простой способ начать разработку циферблатов вручную — использовать Android Studio . Поддержка циферблатов доступна в тестовом канале (canary channel).

  1. Нажмите Файл > Новый проект
  2. В Wear OS выберите базовый циферблат.

Это создает необходимую структуру для полноценного функционирования циферблата часов.

Структура проекта

При создании пользовательского циферблата, использующего формат Watch Face Format, пакет Android App Bundle, включающий файл пользовательского циферблата, должен быть полностью отделен от пакета Android App Bundle, содержащего логику вашего приложения Wear OS. Некоторые магазины приложений, включая Google Play, запрещают загрузку пакета Android App Bundle, включающего как логику Wear OS, так и пользовательский циферблат.

Объявить версию формата циферблата часов

В файле манифеста вашего нового приложения ( AndroidManifest.xml ) проверьте свойство приложения, указывающее на использование формата циферблата.

Некоторые функции Watch Face Format доступны только в более поздних версиях. Установите для этого свойства минимальное значение, поддерживающее необходимые вам функции, чтобы обеспечить максимальную совместимость с устройствами, а также установите minSdkVersion соответствующим образом. Узнайте больше о том, как настроить версии вашего приложения.

<manifest ...>
    <!--
        Use SDK version 33 to support Watch Face Format (WFF) version 1 and
        higher, SDK version 34 to support WFF version 2 and higher, and so on.
    -->
    <uses-sdk
        android:minSdkVersion="34"
        android:targetSdkVersion="34" />

    <!--
        WFF is a resource-only format, so the hasCode attribute should be set to
        false to reflect this.
    -->
    <application
        android:label="@string/watch_face_name"
        android:hasCode="false"
        ...>
        <meta-data android:name="com.google.android.wearable.standalone"
            android:value="true" />
        <property
            android:name="com.google.wear.watchface.format.version"
            android:value="2" />
    </application>
</manifest>

Объявить метаданные циферблата часов

В каталоге ресурсов вашего приложения res/xml есть файл watch_face_info.xml . В нём вы определяете метаданные вашего циферблата:

<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>

    <Preview value="@drawable/watch_face_preview" />
    <Category value="CATEGORY_EMPTY" />
    <AvailableInRetail value="true" />
    <MultipleInstancesAllowed value="true" />
    <Editable value="true" />
</WatchFaceInfo>

Поля в этом файле содержат следующую информацию:

Preview
Указывает на ресурс drawable, содержащий изображение предварительного просмотра циферблата часов.
Category

Определяет категорию циферблата. Должна быть строкой или ссылкой на строку, например, @string/ref_name . Каждый производитель устройств может определить свой собственный набор категорий циферблатов.

Значение по умолчанию: empty_category_meta , которое группирует этот циферблат вместе с другими циферблатами из «пустой категории» в нижней части окна выбора циферблата.

AvailableInRetail

Указывает, доступен ли данный циферблат в демонстрационном режиме для розничной продажи устройства. Должен быть логическим значением или ссылкой на логическое значение, например, @bool/watch_face_available_in_retail .

Значение по умолчанию: false

MultipleInstancesAllowed

Указывает, может ли циферблат иметь несколько избранных. Должно быть логическим значением или ссылкой на логическое значение, например, @bool/watch_face_multiple_instances_allowed .

Значение по умолчанию: false

Editable

Является ли циферблат редактируемым , то есть имеет ли он настройки или, по крайней мере, одно нефиксированное дополнение . Это используется для отображения или скрытия кнопки «Редактировать» для циферблата в списке избранных.

Значение по умолчанию: false

Объявить название циферблата часов

В файле манифеста вашего приложения ( AndroidManifest.xml ) установите атрибут android:label равным имени вашего циферблата:

<application android:label="@string/watch_face_name" >

Укажите подробности о циферблате часов

Структура базового документа для циферблата часов WFF выглядит следующим образом:

<WatchFace width="450" height="450">
  <Scene>
    <!-- Content to be rendered -->
  </Scene>
</WatchFace>

Шаблон Android Studio предоставляет базовый документ в res/raw/watchface.xml . Для поддержки различных форм и размеров экрана необходимо указать поддержку нескольких форм и размеров .

Корневым элементом всегда является WatchFace . height и width определяют границы координатного пространства, используемого для вашего циферблата, и циферблат масштабируется в соответствии с устройством, на котором он используется; height и width не представляют собой фактические пиксели.

Формат циферблата позволяет упорядочить несколько сведений о вашем циферблате:

  • Метаданные , такие как время и количество шагов, отображаемые на предварительном изображении циферблата ваших часов.
  • Пользовательские настройки , такие как различные цветовые темы для циферблата, переключаемые элементы и выбор из нескольких элементов. В версии 2 Watch Face Format представлены варианты оформления , которые могут отображаться в рамках пользовательской конфигурации. Каждый вариант оформления определяет предустановленную конфигурацию пользователя, задавая тип и стиль элементов, которые отображаются вместе со временем на циферблате. Эти предустановки упрощают создание визуально привлекательных групп элементов. В сопутствующем приложении Wear OS пользователи видят различные варианты оформления циферблата в виде прокручиваемой строки.
  • Сцена , содержащая визуальные элементы циферблата часов. Элементы, расположенные ближе к концу сцены, накладываются друг на друга, поэтому типичный порядок следующий:
    • Стрелки для аналоговых часов или текст для цифровых часов
    • Дополнительные элементы интерфейса, отображающие такую ​​информацию, как день недели или количество шагов пользователя.
    • Другие графические элементы, которые добавляют визуальной привлекательности или украшают циферблат часов, например, изображение кемпинга.
  • Группы элементов, позволяющие изменять несколько элементов одновременно. Вы можете создавать варианты этих групп в рамках сцены, что позволяет выборочно скрывать или изменять контент, когда система переходит в энергосберегающий режим.

Атрибуты имеют строгую типизацию и содержат рекомендации по частоте встречаемости и допустимым значениям, что позволяет избежать большинства ошибок при создании циферблата.

Укажите поддержку различных форм циферблата (необязательно)

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

В каталоге ресурсов res/xml вашего приложения укажите набор поддерживаемых вами форм циферблатов в файле watch_face_shapes.xml :

<WatchFaces>
    <WatchFace shape="CIRCLE" width="300" height="300"
               file="@raw/watchface"/>
    <WatchFace shape="CIRCLE" width="450" height="450"
               file="@raw/watchface_large_circle"/>
<WatchFaces>

Затем определите внешний вид и поведение каждого циферблата. Если вы не создавали файл с описанием форм, вам понадобится только один файл — watchface.xml .

Используя пример из этого раздела, исходные XML-файлы будут выглядеть следующим образом:

  • res/raw/watchface.xml
  • res/raw/watchface_large_circle.xml

Укажите издателя циферблата (необязательно)

При желании, в файле манифеста вашего приложения укажите произвольную строку, которую можно использовать для идентификации издателя циферблата или названия и версии используемого инструмента:

<application ...>
    ...
    <property
        android:name="com.google.wear.watchface.format.publisher"
        android:value="<var>{toolName}-{toolVersion}</var>" />
</application>

Проверьте правильность отображения циферблата и работоспособность ваших часов.

В процессе разработки и перед загрузкой в ​​Google Play убедитесь, что ваш циферблат не содержит синтаксических ошибок, используя встроенную проверку формата циферблата в Android Studio. Она автоматически выделяет ошибки в коде и учитывает версии.

Также следует убедиться, что циферблат ваших часов соответствует требованиям к использованию памяти, запустив инструмент для анализа использования памяти .

Создайте свой набор приложений для циферблата часов

Самый простой способ создать и развернуть циферблат — использовать Android Studio, которая имеет встроенную поддержку конфигураций запуска циферблатов. После нажатия кнопки «Запустить » Android Studio развернет циферблат на устройстве или эмуляторе и установит его в качестве активного циферблата.

Примеры циферблатов часов

Дополнительные примеры проектов Watch Face Format доступны на GitHub .

{% verbatim %} {% endverbatim %} {% verbatim %} {% endverbatim %}