Komplikasyonlar, hem fiziksel hem de akıllı saat kadranlarındaki ek bilgiler gösteren bir özelliktir. Komplikasyonlarda genellikle kullanıcı hangi bilgilerin gösterileceğini seçer.
Komplikasyonlar genellikle birkaç şekilde karşımıza çıkar:
- Dikdörtgen
- Dairesel
- Kadran kenarındaki yaylar
- Kadranın tamamını kaplayan arka plan
Wear OS'te komplikasyon sistemi iki bölüme ayrılabilir:
- Kadran veri kaynağı
- Özellik oluşturma
Örneğin, bir sağlık ve fitness uygulaması, Günlük Adımlar komplikasyonu veri kaynağını uygulayabilir. Bu, WFF kadranı tarafından oluşturulabilir.
Kadran komplikasyonlarındaki veri kaynakları
Kadran komplikasyonu veri kaynakları yalnızca oluşturulacak verileri ve komplikasyon türünü belirtir. Veri kaynağı, verilerin kadranda nasıl gösterileceğini belirlemede hiçbir rol oynamaz.
Örneğin, sağlık ve fitness Günlük Adımlar komplikasyonu veri kaynağı, kullanıcının bugün 10.000 adım hedefinin 2.400'ünü tamamladığını belirtmek için aşağıdaki verileri üretebilir:
- Tür:
GOAL_PROGRESS
- Değer:
2400
- TargetValue:
10000
Bu verilerde, bu öğenin nasıl oluşturulacağını belirten hiçbir şey olmadığını unutmayın.
Kadran, hangi komplikasyon türlerini oluşturabileceğini belirtir. Bu, kullanıcının hangi veri kaynaklarından seçim yapabileceğini belirler.
Günlük Adımlar örneğinde, kadran tanımınıza Value
ve TargetValue
öğelerinin nasıl oluşturulacağına karar verirsiniz: Metin olarak mı yoksa ilerleme göstergesi olarak mı? Bu karar, kadran tasarımcısı olarak size aittir.
Özellikleri tanımlama
Kadranınızda komplikasyon gösterme özelliği sunmak, kullanıcıların bir bakışta daha fazla bilgiye erişmesine ve bu bilgileri ihtiyaçlarına göre özelleştirmesine olanak tanıdığı için kullanıcılar için değerli olabilir.
Kadranınızda desteklenecek komplikasyonların olup olmayacağına, kaç tane komplikasyona yer verileceğine, bu komplikasyonların şekillerine ve konumlarına, destekledikleri veri türlerine karar verin.
Kadrandaki komplikasyon alanları, komplikasyonun oluşturulması için sınırlayıcı bir alan tanımlanan bir ComplicationSlot
olarak tanımlanır:
<ComplicationSlot slotId="1" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY"
x="0" y="0" width="225" height="225">
<BoundingArc centerX="225" centerY="225" width="450" height="450"
startAngle="270" endAngle="360" thickness="50" />
<Complication type="SHORT_TEXT">
<!-- Complication content for rendering SHORT_TEXT data goes here -->
</Complication>
<Complication type="SMALL_IMAGE">
<!-- Complication content for rendering SMALL_IMAGE data goes here -->
</Complication>
</ComplicationSlot>
Dikdörtgen ve elips gibi diğer sınırlayıcı şekillere de benzer bir yaklaşım uygulanabilir.
Kadran komplikasyonu türünü ve varsayılan değerleri ayarlama
Karışıklık sistemi, kadran ekranında hangi tür verileri gösterebileceğini ifade etmesine olanak tanıyan çeşitli farklı türde komplikasyonlar sağlar. Örneğin, daha önce gösterilen Arc komplikasyonu, SMALL_IMAGE
gibi görüntü tabanlı bir komplikasyon veri türü için çok uygun değildir ancak RANGED_VALUE
gibi sayısal veriler için çok iyi sonuç verebilir.
ComplicationSlot
beyanınızda supportedTypes
değerini, bu alanda oluşturulabilecek türlerin boşlukla ayrılmış listesine ayarlayın.
EMPTY
türüne izin vermediğiniz sürece ComplicationSlot
için varsayılan kaynağı da ayarlamanız gerekir. Bu durumda varsayılan ayarlama isteğe bağlıdır:
<ComplicationSlot slotId="1" ...>
<BoundingArc .../>
<DefaultProviderPolicy
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="SHORT_TEXT" />
</ComplicationSlot>
Sistem sağlayıcıları belirtmenizin yanı sıra, isteğe bağlı olarak sistem dışı sağlayıcıları da belirtebilirsiniz. Örneğin, halihazırda yüklüyse varsayılan olarak kullanılacak üçüncü taraf sağlayıcıları belirtebilirsiniz.
Komplikasyon verilerini oluşturma
ComplicationSlot
, sınırları ve Complication
öğesini içeren alanı tanımladıktan sonra, komplikasyon verilerini görüntülemek için PartDraw, PartImage
ve PartText
gibi standart WFF bileşenlerini kullanın.
Complication
verilerindeki öğeler özel bir veri kaynağına erişebilir: COMPLICATION
. Bu veri kaynağı, komplikasyon veri kaynağı tarafından ayarlanan çeşitli veri özelliklerini sağlar.
Örneğin, bir SMALL_IMAGE
komplikasyonu COMPLICATION.SMALL_IMAGE
ve COMPLICATION.SMALL_IMAGE_AMBIENT
değerlerini ayarlayabilir. Aşağıdakiler, Image
öğesinde resource yerine kullanılabilir:
<Complication type="SMALL_IMAGE">
<PartImage ...>
<Image resource="[COMPLICATION.SMALL_IMAGE]" />
</PartImage>
</Complication>
Her komplikasyon türünün, ayarlanabilen farklı bir özellik grubu vardır. Her bir komplikasyonun tam listesini Complication
referansında bulabilirsiniz.
Bu örnekte, bir SHORT_TEXT
komplikasyonundaki metin gösterilmektedir:
<Complication type="SHORT_TEXT">
<PartText ...>
<Text>
<Font ...>
<Template>
<![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" />
</Template>
</Font>
</PartImage>
</Complication>
Karmaşıklıkları oluştururken kullanışlılığı en üst düzeye çıkarma
ComplicationSlots
'ü kadranınıza eklerken karşılaşabileceğiniz bazı zorluklar vardır:
- Çok sayıda komplikasyon veri türü vardır. Farklı uygulamalar bunlardan birini veya birkaçını sağlayabilir.
- Her komplikasyon veri türünün zorunlu özelliklerinin yanı sıra birçok isteğe bağlı özelliği de vardır. Farklı kombinasyonlar dikkate alınarak mevcut mülklerden en yararlı oluşturma işleminin yapıldığını kontrol edin.
Bu sorunları gidermek için kullanabileceğiniz bazı stratejiler şunlardır:
- Her yuva için birden fazla komplikasyon türü desteklenir. Örneğin,
SHORT_TEXT
komplikasyon veri kaynakları tarafından oldukça yaygın bir şekilde desteklenir. Bu nedenle, küçük dairesel komplikasyon içinSHORT_TEXT RANGED_VALUE
gibi çeşitli türlerin desteklenmesi uyumluluğu artırır. - Kadranınızda farklı komplikasyon türleri sunun. Örneğin, kenarda konumlandırılmış yay komplikasyonlarında
RANGED_VALUE
veGOAL_PROGRESS
'i, saat yüzünün gövdesinde bulunan dairesel komplikasyonlarda iseSHORT_TEXT
veSMALL_IMAGE
'ı destekleyebilirsiniz. - Her veri türü için isteğe bağlı öğeleri kontrol edin. Örneğin,
SHORT_TEXT
isteğe bağlı olarak bir başlık özelliği ve resim destekler. Mevcut verileri oluşturma düzeniniz, bir resim veya başlığın mevcut olup olmamasına bağlı olarak farklılık gösterebilir.