بعض أنواع الموارد هي تركيبة من عدة موارد معقدة تمثلها ملفات 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.