Konfiguracja formatu tarczy zegarka

Uwaga: na tej stronie znajdziesz jeden z etapów procesu ręcznego zarządzania konfiguracją tarczy zegarka. Jeśli chcesz zaprojektować tarczę zegarka za pomocą narzędzia WYSIWYG (what you see is what you get), najpierw zapoznaj się z przewodnikami po Watch Face Studio.

Ten przewodnik zawiera informacje o narzędziach potrzebnych do skonfigurowania tarczy zegarka za pomocą Formatu tarczy zegarka, sugestie dotyczące struktury projektu oraz szczegółowe instrukcje stosowania narzędzi do tworzenia tej struktury.

Pierwsze kroki z Androidem Studio

Najłatwiejszym sposobem na rozpoczęcie ręcznego tworzenia tarcz zegarka jest użycie Android Studio. Obsługa tarcz zegarka jest dostępna na kanale Canary.

  1. Kliknij Plik > Nowy projekt.
  2. W sekcji Wear OS wybierz Podstawowa tarcza zegarka.

W ten sposób powstaje niezbędna struktura w pełni funkcjonalnej tarczy zegarka.

Struktura projektu

Gdy tworzysz niestandardową tarczę zegarka korzystającą z Formatu tarczy zegarka, pakiet Android App Bundle zawierający plik niestandardowej tarczy zegarka musi być całkowicie oddzielony od pakietu Android App Bundle zawierającego logikę aplikacji na Wear OS. Niektóre sklepy z aplikacjami, w tym Google Play, uniemożliwiają przesyłanie pakietu Android App Bundle, który zawiera zarówno logikę Wear OS, jak i niestandardową tarczę zegarka.

Deklarowanie wersji formatu tarczy zegarka

W pliku manifestu nowej aplikacji (AndroidManifest.xml) sprawdź właściwość application, która wskazuje, że używasz Formatu tarczy zegarka.

<property
    android:name="com.google.wear.watchface.format.version"
    android:value="4" />

Niektóre funkcje formatu tarczy zegarka są dostępne tylko w nowszych wersjach. Ustaw tę właściwość na najniższą wartość, która obsługuje potrzebne Ci funkcje, aby zmaksymalizować zgodność urządzenia, a także ustaw odpowiednio wartość minSdkVersion. Dowiedz się więcej o konfigurowaniu wersji aplikacji.

Element <application> musi też zawierać atrybut android:hasCode="false". Pakiety Format tarczy zegarka zawierają tylko zasoby i nie mogą zawierać kodu.

Deklarowanie metadanych tarczy zegarka

W katalogu zasobów res/xml aplikacji znajduje się plik o nazwie watch_face_info.xml. W tym miejscu możesz zdefiniować metadane tarczy zegarka:

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

Pola w tym pliku zawierają te informacje:

Preview
Odwołuje się do elementu rysowalnego, który zawiera obraz podglądu tarczy zegarka.
Category

Określa kategorię tarczy zegarka. Musi to być ciąg znaków lub odwołanie do ciągu znaków, np. @string/ref_name. Każdy producent urządzeń może zdefiniować własny zestaw kategorii tarcz zegarka.

Wartość domyślna: empty_category_meta, która grupuje tę tarczę zegarka z innymi tarczami z „pustej kategorii” u dołu widoku selektora tarcz zegarka.

AvailableInRetail

Czy tarcza zegarka jest dostępna w trybie demo dla sklepów na urządzeniu. Musi to być wartość logiczna lub odwołanie do wartości logicznej, np. @bool/watch_face_available_in_retail.

Wartość domyślna: false

MultipleInstancesAllowed

Określa, czy tarcza zegarka może mieć wiele ulubionych. Musi to być wartość logiczna lub odwołanie do wartości logicznej, np. @bool/watch_face_multiple_instances_allowed.

Wartość domyślna: false

Editable

czy tarcza zegarka jest edytowalna, co oznacza, że ma ustawienie lub co najmniej 1 niezmienny widżet; Służy do wyświetlania lub ukrywania przycisku Edytuj na liście ulubionych tarcz zegarka.

Wartość domyślna: false

Deklarowanie nazwy tarczy zegarka

W pliku manifestu aplikacji (AndroidManifest.xml) ustaw atrybut android:label w elemencie application na nazwę tarczy zegarka.

Deklarowanie szczegółów tarczy zegarka

Struktura podstawowego dokumentu tarczy zegarka w formacie WFF jest następująca:

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

Szablon Android Studio zawiera podstawowy dokument w formacieres/raw/watchface.xml. Aby obsługiwać różne kształty i rozmiary ekranów, zadeklaruj obsługę wielu kształtów i rozmiarów.

Element główny to zawsze WatchFace. Wartości heightwidth określają zakres przestrzeni współrzędnych do użycia na tarczy zegarka, a tarcza zegarka jest skalowana tak, aby pasowała do urządzenia, na którym jest używana. Wartości heightwidth nie reprezentują rzeczywistych pikseli.

Format tarczy zegarka zawiera kilka szczegółów dotyczących tarczy zegarka:

  • Metadane, takie jak godzina i liczba kroków widoczne na obrazie podglądu tarczy zegarka.
  • Konfiguracje użytkownika, takie jak różne motywy kolorystyczne tarczy zegarka, elementy, które użytkownik może włączać i wyłączać, oraz wybór spośród kilku elementów. Wersja 2 formatu tarczy zegarka wprowadza warianty, które mogą pojawiać się w konfiguracji użytkownika. Każda wersja określa gotową konfigurację użytkownika, która zawiera typ i styl elementów wyświetlanych z godziną na tarczy zegarka. Te gotowe ustawienia ułatwiają tworzenie grup elementów, które są atrakcyjne wizualnie. W aplikacji towarzyszącej Wear OS użytkownicy widzą różne wersje tarczy zegarka w przewijanym wierszu.
  • Scena zawierająca elementy wizualne tarczy zegarka. Elementy, które pojawiają się bliżej końca sceny, są wyświetlane nad innymi elementami, więc typowa kolejność jest następująca:
    • wskazówki zegara analogowego lub tekst zegara cyfrowego;
    • komplikacje, które wyświetlają dodatkowe informacje, takie jak dzień tygodnia lub liczba kroków użytkownika;
    • inne grafiki, które uatrakcyjniają lub dekorują tarczę zegarka, np. obraz obozowiska;
  • Grupy elementów, które umożliwiają jednoczesne modyfikowanie wielu elementów. W scenie możesz utworzyć warianty tych grup, co pozwala selektywnie ukrywać lub modyfikować treści, gdy system przechodzi w tryb otoczenia oszczędzający energię.

Atrybuty są ściśle określone i mają wytyczne dotyczące częstotliwości i prawidłowych wartości, co pozwala uniknąć większości źródeł błędów podczas tworzenia tarczy zegarka.

Deklarowanie obsługi kształtów tarcz zegarka (opcjonalnie)

Ten krok jest konieczny tylko wtedy, gdy chcesz obsługiwać różne zachowania w przypadku różnych rozmiarów tarcz zegarka. Możesz pominąć ten krok, jeśli chcesz, aby tarcza zegara była skalowana do rozmiaru zegarka.

W katalogu zasobów res/xml aplikacji zadeklaruj zestaw kształtów tarczy zegarka, które obsługujesz, w pliku 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>

Następnie określ wygląd i działanie tarczy zegarka dla każdego kształtu tarczy. Jeśli nie zdefiniujesz pliku kształtów, potrzebujesz tylko 1 pliku,watchface.xml.

Korzystając z przykładu z tej sekcji, surowe pliki XML będą wyglądać tak:

  • res/raw/watchface.xml
  • res/raw/watchface_basic.xml

Identyfikowanie wydawcy tarczy zegara (opcjonalnie)

Opcjonalnie w pliku manifestu aplikacji zadeklaruj dowolny ciąg znaków, którego możesz użyć do identyfikacji wydawcy tarczy zegarka lub nazwy i wersji narzędzia, którego używasz:

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

Sprawdzanie poprawności i wydajności tarczy zegarka

Podczas tworzenia tarczy zegarka i przed przesłaniem jej do Google Play sprawdź, czy nie zawiera błędów składniowych, korzystając z wbudowanej w Android Studio funkcji sprawdzania formatu tarczy zegarka. Automatycznie wyróżnia błędy w kodzie i uwzględnia wersje.

Sprawdź też, czy tarcza zegarka spełnia wymagania dotyczące wykorzystania pamięci, uruchamiając narzędzie memory footprint (ślad pamięci).

Tworzenie pakietu aplikacji z tarczami zegarka

Najłatwiejszym sposobem tworzenia i wdrażania tarczy zegarka jest Android Studio, które ma wbudowaną obsługę konfiguracji uruchamiania tarczy zegarka. Po kliknięciu przycisku Uruchom Android Studio wdraża tarczę zegarka na urządzeniu lub emulatorze i ustawia ją jako aktywną tarczę.

Przykładowe tarcze zegarka

Więcej przykładów projektów w formacie tarczy zegarka znajdziesz na GitHubie.