סוגי משאבים מסוימים כוללים הרכבה של מספר משאבים מורכבים שמיוצגים על ידי קובצי XML. אחת הדוגמאות היא פריט מונפש שניתן להזזה בווקטור – זהו משאב שניתן לשרטוט שמקיף וקטור שניתן לצייר ואנימציה. לשם כך נדרש שימוש בשלושה קובצי XML לפחות, כפי שמוצג במעקב דוגמאות.
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 אפשר להגדיר את כל שלושת המשאבים באותו קובץ XML,
אפשר לראות בדוגמה הבאה.
כדי להציג קובץ וקטורי מונפש, צריך לשמור את הקובץ ב-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>
תג ה-XML <aapt:attr >
מנחה את AAPT להתייחס אל הצאצא של התג
ומחלצים אותו לקובץ משאבים משלו. הערך בשם המאפיין מציין את המיקום
כדי להשתמש במשאב המוטבע בתג ההורה.
AAPT יוצר שמות וקובצי משאבים לכל המשאבים המוטבעים. אפליקציות שפותחו באמצעות הפורמט המוטבע הזה תואמות לכל הגרסאות של Android.