UserConfigurations, kullanıcının aralarından seçim yapabileceği seçenekler oluşturmanıza olanak tanır. Kadran öğelerinin görünümünü seçilen değerlere göre ayarlayabilirsiniz.
Kullanıcı yapılandırma seçenekleri şunlar olabilir:
BooleanConfiguration: Genellikle kullanıcının bir öğeyi gösterme veya göstermeme ya da iki stil arasında seçim yapma seçeneğinin olabileceği yerlerde kullanılır.ListConfiguration: Kullanıcıya çeşitli seçenekler sunar. Örneğin, kadranın dört farklı arka plan resmi seçeneği varsaColorConfiguration: Kullanıcının tercih ettiği temayı seçebileceği renk temalarını tanımlar.
Boole seçenekleri
Boole seçenekleri, kullanıcı yapılandırmaları arasında belki de en basiti. Bunlar şu şekilde tanımlanabilir:
<!-- Under WatchFace element --> <UserConfigurations> <!-- show_date and show_date_label defined in res/values/strings.xml --> <BooleanConfiguration id="show_date" displayName="show_date_label" screenReaderText="show_date_label" defaultValue="TRUE" /> </UserConfigurations>
Boole seçenekleri iki şekilde kullanılabilir:
Kadran içinde
BooleanConfigurationyapısını kullanmaScene:<!-- Within the main Scene of the watch face --> <BooleanConfiguration id="show_date"> <BooleanOption id="TRUE"> <!-- ...Content when date required --> </BooleanOption> <BooleanOption id="FALSE"> <!-- ...Content when date not required --> </BooleanOption> </BooleanConfiguration>
Yapılandırma seçeneklerinin iç içe kullanılamayacağını unutmayın.
Alternatif olarak, yapılandırma seçeneği ifadelerde de kullanılabilir:
<Expressions> <Expression name="my_expression"> <!-- Use show_date as part of a more complex evaluation --> <![CDATA[[CONFIGURATION.show_date] == "TRUE" && [HOUR_0_23] < 15]] </Expression> </Expressions> <Compare expression="my_expression"> <!-- Content goes here --> </Compare> </Condition>
Liste seçenekleri
Liste seçenekleri, Boole seçeneklerine çok benzer şekilde çalışır. Örneğin, kullanıcının seçebileceği arka plan resimlerinin listesini sağlamak için:
<!-- Under WatchFace element --> <UserConfigurations> <ListConfiguration id="background_image" displayName="background_image_label" icon="background_option_icon" screenReaderText="background_image_label" defaultValue="0"> <ListOption id="0" displayName="background0_image_label" screenReaderText="background0_image_label" icon="background0_icon" /> <ListOption id="1" displayName="background1_image_label" screenReaderText="background1_image_label" icon="background1_icon" /> ... </ListConfiguration> </UserConfigurations>
Boole seçeneklerine benzer şekilde, bunu kullanmanın da iki yolu vardır:
SceneiçindeListConfigurationöğesini kullanma:<!-- Within the main Scene of the watch face --> <ListConfiguration id="background_image"> <ListOption id="0"> <!-- ...Content for option 0 --> </ListOption> <ListOption id="1"> <!-- ...Content for option 1 --> </ListOption> </ListConfiguration>
Alternatif olarak, yapılandırma seçeneği daha karmaşık ifadelerde de kullanılabilir:
<Expressions> <Expression name="background_zero_and_something_else"> <!-- Use as part of a more complex evaluation --> <![CDATA[[CONFIGURATION.background_image] == "0" && [HOUR_0_23] < 15]] </Expression> </Expressions> <Compare expression="background_zero_and_something_else"> <!-- Content goes here --> </Compare> </Condition>
Renk temaları
Saat Kadranı Formatı, ColorConfiguration aracılığıyla renk temaları tanımlamanıza olanak tanır.
Kullanıcılar, kadran düzenleyiciden istedikleri temayı seçebilir. Bu temadaki renkler, kadran tanımınızın tamamında görünebilir.
Örneğin, temada iki giriş ve üç renk içeren bir tema tanımlamak için ColorConfiguration öğesini aşağıdaki gibi tanımlayın:
<!-- Under WatchFace element --> <UserConfigurations> <ColorConfiguration id="myThemeColor" displayName="theme_label" defaultValue="0"> <ColorOption id="0" displayName="relaxed_label" colors="#3083dc #f8ffe5 #7dde92" /> <ColorOption id="1" displayName="urban_label" colors="#f4b393 #fc60a8 #7a28cb" /> </ColorConfiguration> </UserConfigurations>
Bu değerler daha sonra onaltılık renk değerleri yerine veri kaynağı olarak kullanılabilir. Temanın birinci, ikinci veya üçüncü öğesini seçmek için dizin değerinin nasıl belirtildiğine dikkat edin:
<AnalogClock x="0" y="0" width="450" height="450"> <HourHand resource="hour" x="220" y="55" width="20" height="190" pivotX="0.5" pivotY="0.9210" tintColor="[CONFIGURATION.myThemeColor.0]"/> <MinuteHand resource="minute" x="222" y="30" width="16" height="220" pivotX="0.5" pivotY="0.9" tintColor="[CONFIGURATION.myThemeColor.1]"/> <SecondHand resource="second" x="226" y="20" width="8" height="245" pivotX="0.5" pivotY="0.8571" tintColor="[CONFIGURATION.myThemeColor.2]"/> </AnalogClock>
Her ColorOption için yalnızca bir renk tanımlandığı özel durumda, dizin olmadan CONFIGURATION.myThemeColor olarak da referans verilebilir. Kullanıcı daha sonra saat yüzü düzenleyicide istediği tema girişini seçebilir.
Aromalar
Not: Temalar, Watch Face Format'ın 2. ve sonraki sürümlerinde desteklenir.
UserConfigurations kullanıcıya çok fazla esneklik sunar ancak tanımladığınız yapılandırma öğelerinin sayısı arttıkça kombinasyon sayısı da çok fazla artabilir.
Flavors, vurgulanmaya değer olduğunu düşündüğünüz UserConfigurations için ön ayarlar tanımlamanıza olanak tanır.
Kullanıcı daha sonra yardımcı uygulamada bu önceden ayarlanmış tatlar arasından seçim yapabilir veya her yapılandırma değerini ayrı ayrı seçmeye devam edebilir.
Örneğin, üç ayar tanımladığınız bir saat yüzünü ele alalım:
- Kullanıcının hangi renk temasının uygulanacağını seçmesine olanak tanıyan bir renk teması yapılandırması. Biri renkli, diğeri tek renkli olmak üzere iki tema tanımladınız.
- Arka planların listesi. Kullanıcının seçebileceği iki seçenek tanımladınız.
- Kullanıcının nabzının saat yüzünde gösterilip gösterilmeyeceği seçeneği.
Ayrıca, kadran üzerinde ComplicationSlot simgesi bulunur.
Kullanıcıya vurgulamak istediğiniz iki Flavors olduğunu varsayalım.
Bu ayarların tümüyle ilgili daha birçok olası kombinasyon vardır ancak size en uygun olduğunu düşündüğünüz kombinasyonlar şunlardır:
- Sportif bir tarz: Bu tarz şunlardan oluşur:
- Enerji verip aktif olmanızı sağlayan parlak renk teması (ID: 0)
- İlk arka plan resmi (kimlik: 0)
- Referans için kadranda gösterilen nabız
- Adım sayısını gösteren komplikasyon alanı
- Sofistike bir lezzet: Bu lezzet şunlardan oluşur:
- Her kıyafete uyacak tek renkli tema (ID: 1)
- İkinci arka plan resmi (kimlik: 1)
- Kadran üzerinde nabız gösterilmiyor
- Özellik yuvası etkin değil
Varyantların watch_face_info.xml içinde etkinleştirilmesi gerekir. Bu nedenle, watch_face_info.xml dosyasındaki FlavorsSupported öğesi value="true" ile ayarlanmalıdır.
Her bir lezzet, UserConfigurations içinde aşağıdaki şekilde tanımlanır:
<!-- Under UserConfigurations --> <Flavors defaultValue="sporty_flavor"> <Flavor id="sporty_flavor" displayName="flavor_sporty_label" screenReaderText="flavor_sporty_label"> <Configuration id="theme_color" optionId="0"/> <Configuration id="background_image" optionId="0"/> <Configuration id="show_hr" optionId="TRUE"/> <ComplicationSlot slotId="0"> <DefaultProviderPolicy defaultSystemProvider="STEP_COUNT" defaultSystemProviderType="SHORT_TEXT"/> </ComplicationSlot> </Flavor> <Flavor id="sophisticated_flavor" displayName="flavor_sophisticated_label" screenReaderText="flavor_sophisticated_label"> <Configuration id="theme_color" optionId="1"/> <Configuration id="background_image" optionId="1"/> <Configuration id="show_hr" optionId="FALSE"/> <ComplicationSlot slotId="0"> <!-- Type here is set to empty to demonstrate how to hide a complication slot in Flavors. --> <DefaultProviderPolicy defaultSystemProvider="SUNRISE_SUNSET" defaultSystemProviderType="EMPTY"/> </ComplicationSlot> </Flavor> </Flavors>