پیچیدگی ها یکی از ویژگی های صفحه ساعت های فیزیکی و ساعت هوشمند هستند که اطلاعات اضافی را نشان می دهند. به طور معمول کاربر انتخاب می کند که چه اطلاعاتی در یک عارضه نشان داده شود.
معمولاً عوارض به اشکال مختلفی ظاهر می شوند:
- مستطیل شکل
- دایره ای
- کمان، در امتداد لبه صفحه ساعت
- پس زمینه، تمام صفحه ساعت را می پوشاند
در Wear OS، سیستم Complication را می توان به دو بخش تقسیم کرد:
- منبع داده های پیچیدگی
- رندر پیچیدگی
به عنوان مثال، یک برنامه سلامت و تناسب اندام ممکن است منبع داده عارضه Daily Steps را پیاده سازی کند. این می تواند توسط صفحه ساعت WFF ارائه شود.
منابع داده در عوارض
منابع داده های عارضه فقط داده هایی را که باید ارائه شوند و نوع عارضه را مشخص می کنند. منبع داده هیچ نقشی در تعیین نحوه نمایش داده ها در صفحه ساعت ندارد.
به عنوان مثال، منبع داده عوارض سلامت و تناسب اندام روزانه ممکن است داده های زیر را تولید کند تا نشان دهد کاربر 2400 مرحله از 10000 مرحله هدف خود را امروز انجام داده است:
- نوع:
GOAL_PROGRESS
- قیمت:
2400
- مقدار هدف:
10000
توجه داشته باشید که هیچ چیزی در این داده وجود ندارد که نشان دهد چگونه باید ارائه شود.
صفحه ساعت مشخص می کند که چه نوع عارضه هایی را می تواند ارائه دهد. این تعیین می کند که کدام منابع داده برای انتخاب کاربر در دسترس است.
در مورد مثال Daily Steps، شما در تعریف چهره ساعت خود تصمیم می گیرید که چگونه Value
و TargetValue
را رندر کنید: آیا به صورت متن باشد یا به عنوان نشانگر پیشرفت؟ تصمیم با شما به عنوان طراح صفحه ساعت است.
عوارض را تعریف کنید
ارائه قابلیت نشان دادن عوارض روی صفحه ساعت شما می تواند برای کاربران ارزشمند باشد، زیرا به آنها اجازه می دهد در یک نگاه محدوده بیشتری از اطلاعات را داشته باشند و مطابق با نیازهایشان سفارشی شوند.
تصمیم بگیرید که آیا و چه تعداد عوارض روی صفحه ساعت شما پشتیبانی می شود، شکل و موقعیت آنها چگونه خواهد بود و از چه نوع داده هایی پشتیبانی می کند.
هر فضای روی صفحه ساعت برای یک عارضه به عنوان یک ComplicationSlot
تعریف می شود که در آن یک ناحیه محدود برای نمایش عارضه تعریف می شود:
<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>
رویکرد مشابهی را می توان برای سایر اشکال مرزی مانند مستطیل و بیضی اعمال کرد.
نوع پیچیدگی و پیش فرض ها را تنظیم کنید
سیستم پیچیده انواع مختلفی را ارائه می دهد که به صفحه ساعت اجازه می دهد نوع داده ای را که می تواند بر روی صفحه نمایش دهد بیان کند. به عنوان مثال، یک کمپلکس Arc، همانطور که قبلا نشان داده شد، برای نوع داده های پیچیده مبتنی بر تصویر مانند SMALL_IMAGE
مناسب نیست، اما می تواند برای داده های عددی مانند RANGED_VALUE
بسیار خوب عمل کند.
در اعلان ComplicationSlot
خود، supportedTypes
در لیستی از انواعی که میتوان در این شکاف رندر کرد با فاصله قرار دهید.
همچنین باید منبع پیشفرض را برای ComplicationSlot
تنظیم کنید، مگر اینکه نوع EMPTY
را مجاز کنید، در این صورت تنظیم پیشفرض اختیاری است:
<ComplicationSlot slotId="1" ...>
<BoundingArc .../>
<DefaultProviderPolicy
defaultSystemProvider="STEP_COUNT"
defaultSystemProviderType="SHORT_TEXT" />
</ComplicationSlot>
علاوه بر اینکه باید ارائه دهندگان سیستم را مشخص کنید، می توانید به صورت اختیاری ارائه دهندگان غیر سیستمی مانند ارائه دهندگان شخص ثالث را برای استفاده به صورت پیش فرض، در صورتی که قبلاً نصب شده اند، مشخص کنید .
رندر داده های عارضه
پس از تعریف ComplicationSlot
، مرزها و حاوی عنصر Complication
، از مؤلفه های استاندارد WFF مانند PartDraw, PartImage
و PartText
برای نمایش داده های Complication استفاده کنید.
عناصر موجود در داده های Complication
به یک منبع داده ویژه دسترسی دارند: COMPLICATION
که ویژگی های داده های مختلف تنظیم شده توسط منبع داده پیچیده را فراهم می کند.
به عنوان مثال، یک عارضه SMALL_IMAGE
می تواند مقادیر COMPLICATION.SMALL_IMAGE
و COMPLICATION.SMALL_IMAGE_AMBIENT
را تنظیم کند. اینها را می توان به جای منبع در یک عنصر Image
استفاده کرد:
<Complication type="SMALL_IMAGE">
<PartImage ...>
<Image resource="[COMPLICATION.SMALL_IMAGE]" />
</PartImage>
</Complication>
هر نوع پیچیدگی مختلف دارای مجموعه متفاوتی از ویژگی های موجود است که می توان آنها را تنظیم کرد. برای فهرست کامل هر کدام، به مرجع Complication
مراجعه کنید. این مثال متن یک ترکیب SHORT_TEXT
را نشان می دهد:
<Complication type="SHORT_TEXT">
<PartText ...>
<Text>
<Font ...>
<Template>
<![CDATA[%s]]><Parameter expression="[COMPLICATION.TEXT]" />
</Template>
</Font>
</PartImage>
</Complication>
هنگام ارائه عوارض، سودمندی را به حداکثر برسانید
هنگام افزودن ComplicationSlots
به صفحه ساعت خود، تعدادی چالش وجود دارد:
- انواع داده های پیچیده متعددی وجود دارد. برنامه های مختلف ممکن است یکی یا بسیاری از این موارد را ارائه دهند.
- هر نوع داده پیچیدگی، علاوه بر داشتن ویژگی های اجباری، دارای بسیاری از ویژگی های اختیاری است. بررسی کنید که مفیدترین رندر از خواص موجود با در نظر گرفتن ترکیبات مختلف ساخته شده باشد.
برای رفع این مشکلات، برخی از استراتژی ها عبارتند از:
- پشتیبانی از انواع پیچیدگی های متعدد برای هر اسلات. به عنوان مثال،
SHORT_TEXT
به طور گسترده توسط منابع داده های پیچیده پشتیبانی می شود، بنابراین پشتیبانی از تعدادی از انواع مختلف، مانندSHORT_TEXT RANGED_VALUE
برای یک عارضه دایره ای کوچک، سازگاری را افزایش می دهد. - انواع مختلفی از عوارض را در صفحه ساعت ارائه دهید. به عنوان مثال، میتوانید
RANGED_VALUE
وGOAL_PROGRESS
در پیچیدگیهای Arc در لبه، وSHORT_TEXT
وSMALL_IMAGE
را در پیچیدگیهای دایرهای در بدنه صفحه ساعت پشتیبانی کنید. - عناصر اختیاری را برای هر نوع داده بررسی کنید. به عنوان مثال،
SHORT_TEXT
به صورت اختیاری از یک ویژگی عنوان و یک تصویر پشتیبانی می کند. طرح بندی شما برای ارائه داده های موجود ممکن است بسته به موجود بودن یا نبودن یک تصویر یا عنوان متفاوت باشد.