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ırması seçenekleri şunlar olabilir:
BooleanConfiguration
: Genellikle kullanıcının bir öğeyi gösterme veya göstermeme seçeneği olduğunda ya da iki stil arasında seçim yapması gerektiğinde kullanılır.ListConfiguration
: Kullanıcıya çeşitli seçenekler sunar. Örneğin, kadrandan seçilebilecek dört farklı arka plan resmi 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 basit olanıdır. Bunlar aşağıdaki gibi tanımlanabilir:
<WatchFace ...>
<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>
...
</WatchFace>
Boole seçenekleri daha sonra iki şekilde kullanılabilir:
Scene
kadranındaBooleanConfiguration
yapısını kullanarak:<Scene> <BooleanConfiguration id="show_date"> <BooleanOption id="TRUE"> <!-- ...Content to show date --> </BooleanOption> <BooleanOption id="FALSE"> <!-- ...Content when date not required --> </BooleanOption> </BooleanConfiguration> </Scene>
Yapılandırma seçeneklerinin kullanım sırasında iç içe yerleştirilemeyeceğini unutmayın. Bu nedenle, aşağıdakiler geçerli değildir:
<!-- Will not work --> <!-- <Scene> <BooleanConfiguration id="show_date"> <BooleanOption id="TRUE"> <BooleanConfiguration id="show_time"> <BooleanOption id="TRUE"> Content intended for when show_date and show_time both set to TRUE </BooleanOption> </BooleanConfiguration> </BooleanOption> </BooleanConfiguration> </Scene> -->
Alternatif olarak yapılandırma seçeneği ifadelerde de kullanılabilir:
<Condition> <Expressions> <Expression name="my_expression"> <!-- Use show_date as part of a more complex evaluation --> <![CDATA[[CONFIGURATION.show_date] == "TRUE" && ... ]]> </Expression> </Expressions> <Compare expression="my_expression"> <!-- Content goes here --> </Compare> </Condition>
Liste seçenekleri
Liste seçenekleri, doğru/yanlış seçeneklere çok benzer şekilde çalışır. Örneğin, kullanıcının aralarından seçim yapabileceği arka plan resimlerinin listesini sağlamak için:
<ListConfiguration id="bg_img" displayName="bg_img_lbl" icon="bg_img_ico"
screenReaderText="bg_img_lbl" defaultValue="0">
<ListOption id="0" displayName="bg0_lbl" screenReaderText="b0_lbl" icon="bg0_ico" />
<ListOption id="1" displayName="bg1_lbl" screenReaderText="bg1_lbl" icon="bg1_ico" />
...
</ListConfiguration>
Mantıksal seçeneklere benzer şekilde, bu seçeneği kullanmanın da iki yolu vardır:
Scene
içindeListConfiguration
öğesini kullanarak:<ListConfiguration id="bg_img"> <ListOption id="0"> <!-- Show background 0 --> </ListOption> <ListOption id="1"> <!-- Show background 1 ... etc --> </ListOption> </ListConfiguration>
Alternatif olarak yapılandırma seçeneği daha karmaşık ifadelerde de kullanılabilir:
<Condition> <Expressions> <Expression name="background_zero_and_something_else"> <!-- Use bg_img as part of a more complex evaluation --> <![CDATA[[CONFIGURATION.bg_img] == "0" && ... ]]> </Expression> </Expressions> <Compare expression="background_zero_and_something_else"> <!-- Content goes here --> </Compare> </Condition>
Renk temaları
Kadran biçimi, ColorConfiguration
aracılığıyla renk temaları tanımlamanıza olanak tanır.
Kullanıcılar kadran düzenleyicisinden istedikleri temayı seçebilir ve bu temadaki renkler kadran tanımınız boyunca görünebilir.
Örneğin, iki giriş ve üç renk içeren bir tema tanımlamak için:
Rahat |
|||
Urban |
ColorConfiguration
özelliğini aşağıdaki gibi tanımlayın:
<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 kaynakları olarak kullanılabilir. Temanın ilk, ikinci veya üçüncü öğesini seçmek için dizin değerinin nasıl belirtildiğine dikkat edin:
<HourHand resource="hour" ... tintColor="[CONFIGURATION.myThemeColor.0]" />
<MinuteHand resource="minute" ... tintColor="[CONFIGURATION.myThemeColor.1]" />
<SecondHand resource="second" ... tintColor="[CONFIGURATION.myThemeColor.2]" />
Her ColorOption
için yalnızca bir rengin tanımlandığı özel durumlarda, dizin olmadan CONFIGURATION.myThemeColor
olarak da referans verilebilir.
|
|
Kullanıcı daha sonra kadran düzenleyicisinde istediği tema girişini seçebilir.
Aromalar
Not: Lezzetler, Saat Kadranı Formatı'nın 2 ve sonraki sürümlerinde desteklenir.
UserConfigurations
, kullanıcıya çok fazla esneklik sağlar ancak tanımladığınız yapılandırma öğelerinin sayısını artırdıkça kombinasyon sayısı da çok fazla artabilir.
Flavors
, vurgulamaya değer olduğunu düşündüğünüz UserConfigurations
için ön ayar tanımlamanıza olanak tanır.
Kullanıcı, daha sonra tamamlayıcı uygulamadaki bu önceden ayarlanmış seçenekler 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 kadran düşünün (anlaşılır olması için iç öğeler ve özelliklerin ayrıntıları atlanmıştır):
<UserConfigurations>
<ColorConfiguration id="themeColor" ...>
<ColorOption id="0" displayName="bright_label" ... />
<ColorOption id="1" displayName="monochrome_label" ... />
</ColorConfiguration>
<ListConfiguration id="clockAppearance" ... >
<ListOption id="0" displayName="big_and_bold_label" ... />
<ListrOption id="1" displayName="minimal_label" ... />
</ListConfiguration>
<BooleanConfiguration id="showHr" ... />
</UserConfigurations>
Şunları tanımladınız:
- Kullanıcının hangi renk temasını uygulayacağı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.
- Saat görünümü seçeneklerinin listesi. Büyük ve kalın bir saat ile daha minimal bir saat olmak üzere iki seçenek tanımladınız.
- Kullanıcının nabzının kadranda gösterilip gösterilmeyeceğini seçme.
Ayrıca, kadranda ComplicationSlot
simgesi gösterilir.
Kullanıcıya vurgulamak istediğiniz iki Flavors
olduğunu düşünün.
Tüm bu ayarların daha birçok kombinasyonu vardır ancak en iyi sonucu alacağınızı düşündüğünüz kombinasyonlar şunlardır:
- Spor aroması: Şunları içerir:
- Enerjinizi yükseltecek ve sizi harekete geçirecek parlak renk teması (No: 0)
- Egzersiz yaparken görülebilmesi için büyük ve kalın bir saat (ID: 0)
- Referans olarak kadranda gösterilen nabız
- Adım sayısını gösteren komplikasyon alanı
- Sofistike bir lezzet: Bu, aşağıdakilerden oluşur:
- Her kıyafete uyacak tek renkli renk teması (No: 1)
- Her ortama uyum sağlayacak minimal saat (ID: 1)
- Kadranınızda nabız gösterilmiyor
- Komplikasyon yuvası etkin değil
Lezzetler watch_face_info.xml
'te etkinleştirilmelidir:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
...
<MultipleInstancesAllowed value="true" />
<FlavorsSupported value="true" />
</WatchFaceInfo>
Ardından her bir lezzet, UserConfigurations
içinde aşağıdaki şekilde tanımlanır:
<Flavors defaultValue="sportyFlavor">
<Flavor id="sportyFlavor" ... >
<Configuration id="themeColor" optionId="0"/>
<Configuration id="clockAppearance" optionId="0"/>
<Configuration id="showHr" optionId="TRUE"/>
<ComplicationSlot slotId="0">
<DefaultProviderPolicy
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="SHORT_TEXT"/>
</ComplicationSlot>
</Flavor>
<Flavor id="sophisticatedFlavor" ... >
<Configuration id="themeColor" optionId="1"/>
<Configuration id="clockAppearance" optionId="1"/>
<Configuration id="showHr" 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>