इनलाइन जटिल एक्सएमएल रिसॉर्स

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

res/drawable/avd.xml
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
   
android:drawable="@drawable/vectordrawable" >
   
<target
       
android:name="rotationGroup"
       
android:animation="@anim/rotation" />
</animated-vector>
res/drawable/vectordrawable.xml
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
   
android:height="64dp"
   
android:width="64dp"
   
android:viewportHeight="600"
   
android:viewportWidth="600" >
   
<group
       
android:name="rotationGroup"
       
android:pivotX="300.0"
       
android:pivotY="300.0"
       
android:rotation="45.0" >
       
<path
           
android:fillColor="#000000"
           
android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
   
</group>
</vector>
res/anim/rotation.xml
<?xml version="1.0" encoding="utf-8"?>
<objectAnimator xmlns:android="http://schemas.android.com/apk/android"
   
android:duration="6000"
   
android:propertyName="rotation"
   
android:valueFrom="0"
   
android:valueTo="360" />

अगर ड्रॉ करने लायक वेक्टर और ऐनिमेशन का दूसरी जगह दोबारा इस्तेमाल किया जाता है, तो यह ड्रॉ करने लायक ऐनिमेशन वाला वेक्टर. हालाँकि, अगर इन फ़ाइलों का इस्तेमाल सिर्फ़ ड्रॉ किए जा सकने वाले ऐनिमेटेड वेक्टर के लिए किया जाता है, तो उन्हें लागू करने का ज़्यादा छोटा तरीका होता है.

AAPT के इनलाइन रिसॉर्स फ़ॉर्मैट का इस्तेमाल करके, एक ही एक्सएमएल फ़ाइल में तीनों संसाधनों को इस तरह परिभाषित किया जा सकता है नीचे दिए गए उदाहरण में दिखाया गया है. ड्रॉ करने लायक ऐनिमेशन वाले वेक्टर के लिए, फ़ाइल को res/drawable/ में रखें.

res/drawable/avd.xml
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
   
xmlns:aapt="http://schemas.android.com/aapt" >

   
<aapt:attr name="android:drawable" >
       
<vector
           
android:height="64dp"
           
android:width="64dp"
           
android:viewportHeight="600"
           
android:viewportWidth="600" >
           
<group
               
android:name="rotationGroup"
               
android:pivotX="300.0"
               
android:pivotY="300.0"
               
android:rotation="45.0" >
               
<path
                   
android:fillColor="#000000"
                   
android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
           
</group>
       
</vector>
   
</aapt:attr>

   
<target android:name="rotationGroup">
       
<aapt:attr name="android:animation" >
           
<objectAnimator
               
android:duration="6000"
               
android:propertyName="rotation"
               
android:valueFrom="0"
               
android:valueTo="360" />
       
</aapt:attr>
   
</target>
</animated-vector>

एक्सएमएल टैग <aapt:attr >, AAPT को टैग के चाइल्ड टैग को संसाधन और उसे अपनी खुद की संसाधन फ़ाइल में एक्सट्रैक्ट करना. एट्रिब्यूट के नाम में मौजूद वैल्यू से पता चलता है कि का इस्तेमाल करने के लिए, पैरंट टैग में इनलाइन रिसॉर्स का इस्तेमाल किया जाता है.

AAPT, सभी इनलाइन रिसॉर्स के लिए रिसॉर्स फ़ाइलें और नाम जनरेट करता है. इस इनलाइन फ़ॉर्मैट का इस्तेमाल करके बनाए गए ऐप्लिकेशन, Android के सभी वर्शन पर काम करते हैं.