برخی از انواع منابع ترکیبی از چندین منبع پیچیده هستند که با فایل های 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 فایل ها و نام های منبع را برای همه منابع درون خطی تولید می کند. برنامه های ساخته شده با استفاده از این فرمت درون خطی با تمام نسخه های اندروید سازگار هستند.