Komplikasyonlar, hem fiziksel hem de akıllı saat kadranlarında ek bilgiler gösteren bir özelliktir. Genellikle kullanıcı, komplikasyonda hangi bilgilerin gösterileceğini seçer.
Genellikle komplikasyonlar çeşitli şekillerde karşımıza çıkar:
- Dikdörtgen
- Dairesel
- Kadranın kenarındaki yaylar
- Kadranın tamamını kaplayan arka plan
Wear OS'te komplikasyon sistemi iki kısma ayrılabilir:
- Complication veri kaynağı
- Özellik oluşturma
Örneğin, bir sağlık ve fitness uygulaması, günlük adım sayısı komplikasyonu veri kaynağı uygulayabilir. Bu, WFF saat yüzü tarafından oluşturulabilir.
Özelliklerdeki veri kaynakları
Komplikasyon veri kaynakları yalnızca oluşturulacak verileri ve komplikasyon türünü belirtir. Verilerin kadranda nasıl gösterileceğini belirlemede veri kaynağının hiçbir rolü yoktur.
Örneğin, sağlık ve fitness ile ilgili Günlük Adım sayısı komplikasyon veri kaynağı, kullanıcının bugün hedeflediği 10.000 adımdan 2.400'ünü attığını belirtmek için aşağıdaki verileri üretebilir:
- Tür:
GOAL_PROGRESS - Değer:
2400 - TargetValue:
10000
Bu verilerde, bunun nasıl oluşturulması gerektiğini belirten hiçbir şey olmadığını unutmayın.
Saat yüzü, hangi tür komplikasyonları oluşturabileceğini belirtir. Bu, kullanıcının daha sonra hangi veri kaynaklarını seçebileceğini belirler.
Günlük Adım Sayısı örneğinde, kadran tanımınızda Value ve TargetValue öğelerinin nasıl oluşturulacağına karar verirsiniz: Metin olarak mı yoksa ilerleme göstergesi olarak mı oluşturulacak? Buna kadran tasarımcısı olarak siz karar verirsiniz.
Özellikleri tanımlama
Saat yüzünüzde komplikasyon gösterme özelliği sunmak, kullanıcılara değer katar. Bu özellik sayesinde kullanıcılar, bir bakışta daha fazla bilgiye erişebilir ve bilgileri ihtiyaçlarına göre özelleştirebilir.
Saat yüzünüzde kaç tane özelliği destekleyeceğinize, şekillerinin ve konumlarının nasıl olacağına ve hangi veri türlerini destekleyeceklerine karar verin.
Saat yüzünde komplikasyon için ayrılan her alan, komplikasyonun oluşturulması için sınırlayıcı bir alanın tanımlandığı bir ComplicationSlot olarak tanımlanır:
<ComplicationSlot slotId="1" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY" x="100" y="100" width="100" height="100"> <BoundingOval x="0" y="0" width="100" height="100" /> <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>
Benzer bir yaklaşım, dikdörtgen ve elips gibi diğer sınırlayıcı şekillere de uygulanabilir.
Özellik türünü ve varsayılanları ayarlama
Komplikasyon sistemi, bir dizi farklı tür sunar. Bu sayede saat yüzü, ekranda hangi tür verileri gösterebileceğini ifade edebilir. Örneğin, daha önce gösterildiği gibi bir Arc komplikasyonu, SMALL_IMAGE gibi resim tabanlı bir komplikasyon veri türü için uygun değildir ancak RANGED_VALUE gibi sayısal veriler için çok iyi çalışabilir.
ComplicationSlot beyanınızda supportedTypes değerini, bu alanda oluşturulabilecek türlerin boşlukla ayrılmış listesi olarak ayarlayın.
ComplicationSlot türüne izin vermediğiniz sürece ComplicationSlot için varsayılan kaynağı da ayarlamanız gerekir. Bu durumda varsayılan kaynak ayarlamak isteğe bağlıdır:EMPTY
<ComplicationSlot slotId="2" supportedTypes="SHORT_TEXT SMALL_IMAGE EMPTY" x="250" y="100" width="100" height="100"> <DefaultProviderPolicy defaultSystemProvider="STEP_COUNT" defaultSystemProviderType="SHORT_TEXT" /> <!-- ... --> </ComplicationSlot>
Sistem sağlayıcıları belirtmenin yanı sıra, isteğe bağlı olarak sistem dışı sağlayıcıları da belirtebilirsiniz. Örneğin, varsayılan olarak kullanılacak üçüncü taraf sağlayıcılar zaten yüklüyse bunları belirtebilirsiniz.
Özellik verilerini oluşturma
ComplicationSlot, sınırlar ve kapsayan Complication öğesini tanımladıktan sonra, komplikasyon verilerini göstermek için PartDraw, PartImage ve PartText gibi standart WFF bileşenlerini kullanın.
Complication verilerindeki öğeler, COMPLICATION adlı özel bir veri kaynağına erişebilir. 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. Bunlar, Image öğesinde kaynak yerine kullanılabilir:
<Complication type="SMALL_IMAGE"> <PartImage x="0" y="0" width="100" height="100"> <Image resource="[COMPLICATION.SMALL_IMAGE]" /> </PartImage> </Complication>
Her farklı komplikasyon türünün, ayarlanabilecek farklı bir özellik grubu vardır. Her birinin tam listesi için Complication referansına bakın.
Bu örnekte, SHORT_TEXT komplikasyonundaki metin gösterilmektedir:
<Complication type="SHORT_TEXT"> <PartText x="0" y="0" width="100" height="100"> <Text> <Font size="32"> <Template> <![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" /> </Template> </Font> </Text> </PartText> </Complication>
Komplikasyonları oluştururken faydayı en üst düzeye çıkarma
ComplicationSlots öğesini saat yüzünüze eklerken karşılaşılabilecek bazı zorluklar vardır:
- Çok sayıda komplikasyon veri türü vardır. Farklı uygulamalar bu özelliklerden birini veya birkaçını sağlayabilir.
- Her komplikasyon veri türü, zorunlu özelliklere sahip olmanın yanı sıra birçok isteğe bağlı özellik de içerir. Farklı kombinasyonlar dikkate alınarak, mevcut özelliklerden en faydalı oluşturma işleminin yapıldığını kontrol edin.
Bu sorunları gidermek için kullanılabilecek bazı stratejiler şunlardır:
- Her yuva için birden fazla komplikasyon türünü destekleyin. Örneğin,
SHORT_TEXT, komplikasyon veri kaynakları tarafından oldukça yaygın bir şekilde desteklenir. Bu nedenle, küçük bir dairesel komplikasyon içinSHORT_TEXT RANGED_VALUEgibi çeşitli türleri desteklemek uyumluluğu artırır. - Saat yüzünde farklı komplikasyon türleri sunun. Örneğin, kenara yerleştirilmiş Arc komplikasyonlarında
RANGED_VALUEveGOAL_PROGRESS, saat yüzünün gövdesindeki dairesel komplikasyonlarda iseSHORT_TEXTveSMALL_IMAGEsembollerini destekleyebilirsiniz. - Her veri türü için isteğe bağlı öğeleri kontrol edin. Örneğin,
SHORT_TEXTisteğe bağlı olarak başlık özelliğini ve resmi destekler. Kullanılabilir verilerin oluşturulması için düzeniniz, resim veya başlık olup olmamasına bağlı olarak farklılık gösterebilir.