تغییر پویا ظاهر عنصر

ممکن است بخواهید ظاهر بخش‌هایی از صفحه ساعت را تغییر دهید، برای مثال، موقعیت، اندازه، میزان دید را تغییر دهید، که اغلب در پاسخ به منابع داده ورودی مانند زمان روز یا شتاب‌سنج انجام می‌شود.

در قالب واچ فیس، این امر از طریق استفاده از عنصر Transform محقق می‌شود. همه عناصر قابل تبدیل نیستند، اما عناصر اصلی قابل تبدیل شامل موارد زیر هستند: عناصر Group ، Part* و عناصر ترسیمی اولیه مانند شکل‌ها و سبک‌ها.

ویژگی‌های هر عنصر که قابل تبدیل هستند، در مستندات مرجع به همین صورت علامت‌گذاری شده‌اند.

خودِ تبدیل در ویژگی value ، در زبان عبارت Watch Face Format، مشخص شده است که می‌تواند شامل منابع داده باشد. target ویژگی‌ای را که قرار است در عنصر والد تغییر کند، مشخص می‌کند.

برای مثال، برای تغییر زاویه یک Arc برای نشان دادن پیشرفت گام:

<Arc centerX="225" centerY="225" height="420" width="420" startAngle="0" endAngle="0">
    <Transform target="endAngle" value="[STEP_PERCENT] * 3.6" />
    <Stroke color="#FF00FF" thickness="20" />
</Arc>

با تغییر STEP_PERCENT ، endAngle دوباره محاسبه شده و Arc دوباره رسم می‌شود.

وقتی یک عنصر Transform مقدار هدف را تغییر می‌دهد، بهتر است این تغییر در یک دوره زمانی انیمیشن شود، برخلاف تغییر فوری مقدار که می‌تواند نامطلوب باشد. برای دستیابی به این هدف از عنصر Animation استفاده کنید:

<PartDraw x="100" y="150" width="250" height="120" >
    <Ellipse x="0" y="0" width="50" height="50">
        <Fill color="#ff0000" />
        <!-- Red ball with no animated transition -->
        <Transform target="x" value="[SECOND] % 2 == 0 ? 0 : 200"/>
    </Ellipse>
    <Ellipse x="0" y="100" width="50" height="50">
        <Fill color="#00ff00" />
        <!-- Green ball eases between each position -->
        <Transform target="x" value="[SECOND] % 2 == 0 ? 0 : 200">
            <Animation duration="1" interpolation="EASE_IN_OUT" />
        </Transform>
    </Ellipse>
</PartDraw>

تبدیل با استفاده از شتاب‌سنج

اگرچه می‌توان از عنصر Transform به همراه منابع داده ژیروسکوپی مانند ACCELEROMETER_ANGLE_X برای تغییر موقعیت یا مقیاس یک عنصر استفاده کرد، اما Watch Face Format عنصر جداگانه‌ای برای این موارد ارائه می‌دهد: Gyro .

این به شما امکان می‌دهد تصویر کلی را ساده کنید و تبدیل مبتنی بر حرکت را از سایر تبدیل‌ها مانند تبدیل مبتنی بر زمان که ممکن است برای همان عنصر اعمال شود، جدا کنید.