एलिमेंट के दिखने के तरीके को डाइनैमिक तरीके से बदलना

हो सकता है कि आप स्मार्टवॉच की होम स्क्रीन के कुछ हिस्सों के दिखने का तरीका बदलना चाहें. उदाहरण के लिए, अक्सर इनपुट डेटा सोर्स, जैसे कि दिन का समय या ऐक्सीलेरोमीटर के हिसाब से, होम स्क्रीन पर मौजूद आइटम की पोज़िशन, साइज़, और दिखने का तरीका बदला जा सकता है.

Watch Face Format में, Transform एलिमेंट का इस्तेमाल करके ऐसा किया जाता है. सभी एलिमेंट को ट्रांसफ़ॉर्म नहीं किया जा सकता. हालांकि, ट्रांसफ़ॉर्म किए जा सकने वाले मुख्य एलिमेंट में ये शामिल हैं: Group , Part* एलिमेंट, और ड्रॉइंग प्राइमिटिव, जैसे कि आकार और स्टाइल.

रेफ़रंस दस्तावेज़ में, हर एलिमेंट के उन एट्रिब्यूट को इस तरह से मार्क किया गया है जिन्हें बदला जा सकता है.

value एट्रिब्यूट में, स्मार्टवॉच की होम स्क्रीन के फ़ॉर्मैट की एक्सप्रेशन भाषा में ट्रांसफ़ॉर्म की जानकारी दी जाती है. इसमें डेटा सोर्स शामिल हो सकते हैं. target, उस एट्रिब्यूट के बारे में बताता है जिसे पैरंट एलिमेंट में बदलना है.

उदाहरण के लिए, किसी चरण की प्रोग्रेस दिखाने के लिए Arc के ऐंगल को बदलने के लिए:

<Arc centerX="225" centerY="225" height="420" width="420" startAngle="0" endAngle="0">
  <Transform target="endAngle" value="[STEP_PERCENT] * 3.6" />
  <...>
</Arc>

STEP_PERCENT में बदलाव होने पर, endAngle का हिसाब फिर से लगाया जाता है और Arc को फिर से बनाया जाता है.

जब कोई ट्रांसफ़ॉर्म एलिमेंट किसी टारगेट वैल्यू में बदलाव करता है, तो हो सकता है कि इस बदलाव को कुछ समय के लिए ऐनिमेट किया जाए. ऐसा इसलिए, ताकि वैल्यू में तुरंत बदलाव न हो, जो परेशान कर सकता है. ऐसा करने के लिए, 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 जैसे घुमावदार डेटा सोर्स के साथ किया जा सकता है. हालांकि, स्मार्टवॉच की होम स्क्रीन के फ़ॉर्मैट में, इनके लिए एक अलग एलिमेंट उपलब्ध है: Gyro.

इससे आपको पूरी तस्वीर को आसानी से समझने में मदद मिलती है. साथ ही, मूवमेंट के आधार पर होने वाले ट्रांसफ़ॉर्मेशन को, समय के आधार पर होने वाले ट्रांसफ़ॉर्मेशन से अलग किया जा सकता है. ऐसा, एक ही एलिमेंट पर लागू किया जा सकता है.