UserConfigurations
cho phép bạn tạo các tuỳ chọn mà người dùng có thể chọn. Bạn có thể điều chỉnh giao diện của các thành phần trên mặt đồng hồ dựa trên các giá trị đã chọn.
Các tuỳ chọn cấu hình người dùng có thể là:
BooleanConfiguration
: thường được dùng cho trường hợp người dùng có thể chọn hiển thị hoặc không hiển thị một phần tử hoặc chọn giữa hai kiểuListConfiguration
: cung cấp cho người dùng một loạt các tuỳ chọn. Ví dụ: nếu mặt đồng hồ có 4 hình nền khác nhau để chọnColorConfiguration
: xác định giao diện màu, từ đó người dùng có thể chọn giao diện mà họ muốn.
Tuỳ chọn boolean
Tuỳ chọn Boolean có lẽ là đơn giản nhất trong các cấu hình người dùng. Bạn có thể định nghĩa các thuộc tính này như sau:
<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>
Sau đó, bạn có thể sử dụng các tuỳ chọn Boolean theo hai cách:
Sử dụng cấu trúc
BooleanConfiguration
trong mặt đồng hồScene
:<Scene> <BooleanConfiguration id="show_date"> <BooleanOption id="TRUE"> <!-- ...Content to show date --> </BooleanOption> <BooleanOption id="FALSE"> <!-- ...Content when date not required --> </BooleanOption> </BooleanConfiguration> </Scene>
Xin lưu ý rằng bạn không thể lồng các tuỳ chọn cấu hình trong quá trình sử dụng, vì vậy, nội dung sau không hợp lệ:
<!-- 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> -->
Ngoài ra, bạn có thể sử dụng tuỳ chọn cấu hình trong biểu thức:
<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>
Tùy chọn danh sách
Tuỳ chọn danh sách hoạt động theo cách rất giống với tuỳ chọn boolean. Ví dụ: để cung cấp danh sách hình nền cho người dùng chọn:
<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>
Tương tự như các tuỳ chọn boolean, bạn cũng có hai cách để sử dụng tuỳ chọn này:
Sử dụng phần tử
ListConfiguration
trongScene
:<ListConfiguration id="bg_img"> <ListOption id="0"> <!-- Show background 0 --> </ListOption> <ListOption id="1"> <!-- Show background 1 ... etc --> </ListOption> </ListConfiguration>
Ngoài ra, bạn có thể sử dụng tuỳ chọn cấu hình trong các biểu thức phức tạp hơn:
<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>
Cách phối Màu
Định dạng mặt đồng hồ cho phép bạn xác định giao diện màu thông qua ColorConfiguration
.
Người dùng có thể chọn giao diện họ muốn trong trình chỉnh sửa mặt đồng hồ và màu sắc trong giao diện này có thể xuất hiện trong toàn bộ định nghĩa mặt đồng hồ.
Ví dụ: để xác định một giao diện có hai mục nhập và ba màu trong giao diện:
Dễ chịu |
|||
Thành thị |
Xác định ColorConfiguration
như sau:
<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>
Sau đó, bạn có thể sử dụng các giá trị này làm nguồn dữ liệu thay vì giá trị màu hệ thập lục phân. Lưu ý cách chỉ định giá trị chỉ mục để chọn phần tử đầu tiên, thứ hai hoặc thứ ba của giao diện:
<HourHand resource="hour" ... tintColor="[CONFIGURATION.myThemeColor.0]" />
<MinuteHand resource="minute" ... tintColor="[CONFIGURATION.myThemeColor.1]" />
<SecondHand resource="second" ... tintColor="[CONFIGURATION.myThemeColor.2]" />
Trong trường hợp cụ thể mà mỗi ColorOption
chỉ có một màu được xác định, bạn cũng có thể tham chiếu màu đó dưới dạng CONFIGURATION.myThemeColor
mà không cần chỉ mục.
|
|
Sau đó, người dùng có thể chọn mục nhập giao diện mà họ muốn trong trình chỉnh sửa mặt đồng hồ.
Hương vị
Lưu ý: Các phiên bản được hỗ trợ trên phiên bản 2 trở lên của Định dạng mặt đồng hồ.
UserConfigurations
mang đến cho người dùng nhiều sự linh hoạt, nhưng khi bạn tăng số lượng phần tử cấu hình mà bạn xác định, số lượng tổ hợp có thể tăng lên đáng kể.
Flavors
cho phép bạn xác định các giá trị đặt trước cho UserConfigurations
mà bạn nghĩ là đáng làm nổi bật.
Sau đó, người dùng có thể chọn trong số các phiên bản đặt trước này trong ứng dụng đồng hành hoặc tiếp tục chọn từng giá trị cấu hình riêng lẻ.
Ví dụ: hãy xem xét một mặt đồng hồ mà bạn xác định 3 chế độ cài đặt (đã bỏ qua các phần tử bên trong và thông tin chi tiết về thuộc tính để rõ ràng):
<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>
Bạn đã xác định:
- Cấu hình giao diện màu, cho phép người dùng chọn giao diện màu cần áp dụng. Bạn đã xác định hai giao diện, một giao diện đầy màu sắc và một giao diện đơn sắc.
- Danh sách các lựa chọn về giao diện đồng hồ. Bạn đã xác định hai lựa chọn, một đồng hồ lớn đậm và một đồng hồ trông tối giản hơn.
- Lựa chọn hiển thị nhịp tim của người dùng trên mặt đồng hồ hay không.
Ngoài ra, bạn có một ComplicationSlot
trên mặt đồng hồ.
Bạn quyết định có hai Flavors
mà bạn muốn làm nổi bật cho người dùng.
Có nhiều tổ hợp khác có thể áp dụng cho tất cả các chế độ cài đặt này, nhưng đây là những tổ hợp mà bạn cho là hiệu quả nhất:
- Phiên bản thể thao: Phiên bản này sẽ bao gồm:
- Giao diện màu sáng, giúp bạn tràn đầy năng lượng và hoạt động tích cực (Mã: 0)
- Đồng hồ lớn và đậm để có thể nhìn thấy trong khi tập thể dục (Mã: 0)
- Nhịp tim hiển thị trên mặt đồng hồ để tham khảo
- Khu vực hiển thị chức năng cho biết số bước
- Một phiên bản tinh vi: Phiên bản này sẽ bao gồm:
- Chủ đề màu đơn sắc, phù hợp với mọi bộ trang phục (Mã: 1)
- Đồng hồ tối giản, phù hợp với mọi môi trường (Mã: 1)
- Không có nhịp tim hiển thị trên mặt đồng hồ
- Chưa bật vùng chức năng
Bạn cần bật phiên bản trong watch_face_info.xml
:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
...
<MultipleInstancesAllowed value="true" />
<FlavorsSupported value="true" />
</WatchFaceInfo>
Sau đó, mỗi Phiên bản được xác định trong UserConfigurations
như sau:
<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>