UserConfigurations
memungkinkan Anda membuat opsi yang dapat dipilih
pengguna. Anda dapat menyesuaikan tampilan elemen
tampilan jam berdasarkan nilai yang dipilih.
Opsi konfigurasi pengguna dapat berupa:
BooleanConfiguration
: biasanya digunakan untuk tempat pengguna mungkin memiliki opsi untuk menampilkan elemen atau tidak, atau memilih antara dua gayaListConfiguration
: memberi pengguna berbagai opsi. Misalnya, jika tampilan jam memiliki empat gambar latar belakang yang berbeda untuk dipilihColorConfiguration
: menentukan tema warna, tempat pengguna dapat memilih tema pilihan mereka.
Opsi boolean
Opsi boolean mungkin merupakan konfigurasi pengguna yang paling sederhana. Hal ini dapat didefinisikan sebagai berikut:
<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>
Opsi Boolean kemudian dapat digunakan dengan dua cara:
Menggunakan struktur
BooleanConfiguration
dalamScene
tampilan jam:<Scene> <BooleanConfiguration id="show_date"> <BooleanOption id="TRUE"> <!-- ...Content to show date --> </BooleanOption> <BooleanOption id="FALSE"> <!-- ...Content when date not required --> </BooleanOption> </BooleanConfiguration> </Scene>
Perhatikan bahwa opsi konfigurasi tidak dapat disusun bertingkat dalam penggunaannya, sehingga hal berikut tidak valid:
<!-- 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> -->
Atau, opsi konfigurasi dapat digunakan dalam ekspresi:
<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>
Opsi daftar
Opsi daftar berfungsi dengan cara yang sangat mirip dengan opsi boolean. Misalnya, untuk memberikan daftar gambar latar belakang yang dapat dipilih pengguna:
<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>
Serupa dengan opsi boolean, ada dua cara untuk menggunakannya:
Menggunakan elemen
ListConfiguration
diScene
:<ListConfiguration id="bg_img"> <ListOption id="0"> <!-- Show background 0 --> </ListOption> <ListOption id="1"> <!-- Show background 1 ... etc --> </ListOption> </ListConfiguration>
Atau, opsi konfigurasi dapat digunakan dalam ekspresi yang lebih kompleks:
<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>
Tema warna
Format Tampilan Jam memungkinkan Anda menentukan tema warna melalui ColorConfiguration
.
Pengguna dapat memilih tema pilihan mereka dari editor tampilan jam, dan
warna dari tema ini dapat muncul di seluruh definisi tampilan jam Anda.
Misalnya, untuk menentukan tema dengan dua entri dan tiga warna dalam tema:
Santai |
|||
Urban |
Tentukan ColorConfiguration
sebagai berikut:
<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>
Nilai ini kemudian dapat digunakan sebagai sumber data, bukan nilai warna heksadesimal. Perhatikan cara nilai indeks ditentukan untuk memilih elemen pertama, kedua, atau ketiga tema:
<HourHand resource="hour" ... tintColor="[CONFIGURATION.myThemeColor.0]" />
<MinuteHand resource="minute" ... tintColor="[CONFIGURATION.myThemeColor.1]" />
<SecondHand resource="second" ... tintColor="[CONFIGURATION.myThemeColor.2]" />
Dalam kasus khusus saat setiap ColorOption
hanya memiliki satu warna yang ditentukan, Anda juga dapat mereferensikannya sebagai CONFIGURATION.myThemeColor
, tanpa indeks.
|
|
Kemudian, pengguna dapat memilih entri tema pilihan mereka di editor tampilan jam.
Rasa
Catatan: Rasa didukung pada Format Tampilan Jam versi 2 dan yang lebih tinggi.
UserConfigurations
memberi pengguna banyak fleksibilitas, tetapi saat Anda
meningkatkan jumlah elemen konfigurasi yang ditentukan, jumlah
kombinasi dapat meningkat secara luar biasa.
Flavors
memungkinkan Anda menentukan preset untuk UserConfigurations
yang menurut Anda
layak ditonjolkan.
Kemudian, pengguna dapat memilih dari ragam preset ini dalam aplikasi pendamping, atau terus memilih setiap nilai konfigurasi satu per satu.
Misalnya, pertimbangkan tampilan jam tempat Anda menentukan tiga setelan (elemen dalam dan detail atribut telah dihilangkan untuk kejelasan):
<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>
Anda telah menentukan:
- Konfigurasi tema warna, yang memungkinkan pengguna memilih tema warna yang akan diterapkan. Anda telah menentukan dua tema, satu berwarna-warni dan satu monokrom.
- Daftar pilihan tampilan jam. Anda telah menentukan dua pilihan, jam besar yang tebal dan jam yang terlihat lebih minimalis.
- Pilihan apakah akan menampilkan detak jantung pengguna di tampilan jam.
Selain itu, Anda memiliki ComplicationSlot
di tampilan jam.
Anda memutuskan bahwa ada dua Flavors
yang ingin Anda soroti kepada pengguna.
Ada banyak kemungkinan kombinasi dari semua setelan ini, tetapi berikut
setelan yang menurut Anda paling sesuai:
- Gaya sporty: Ini akan terdiri dari:
- Tema warna cerah, untuk memberi Anda energi dan membuat Anda aktif (ID: 0)
- Jam yang besar dan tebal, sehingga dapat dilihat saat berolahraga (ID: 0)
- Detak jantung yang ditampilkan di tampilan jam sebagai referensi
- Slot detail yang menampilkan jumlah langkah
- Rasa yang canggih: Ini akan terdiri dari:
- Tema warna monokrom, untuk mencocokkan dengan pakaian apa pun (ID: 1)
- Jam minimal, agar cocok dengan lingkungan apa pun (ID: 1)
- Tidak ada detak jantung yang ditampilkan di tampilan jam
- Slot detail tidak diaktifkan
Rasa memerlukan pengaktifan di watch_face_info.xml
:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
...
<MultipleInstancesAllowed value="true" />
<FlavorsSupported value="true" />
</WatchFaceInfo>
Kemudian, setiap Rasa ditentukan dalam UserConfigurations
sebagai berikut:
<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>