Alcuni tipi di risorse sono una composizione di più risorse complesse rappresentate da file XML. Un esempio è una risorsa di disegno vettoriale animato, ovvero una risorsa disegnabile che incapsula un disegno vettoriale e un'animazione. Ciò richiede l'utilizzo di almeno tre file XML, come mostrato negli esempi seguenti.
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" />
Se il disegno vettoriale e le animazioni vengono riutilizzati altrove, questo è il modo migliore per implementare un vettore animato. Tuttavia, se questi file vengono utilizzati solo per questo disegno vettoriale animato, esiste un modo più compatto per implementarli.
Utilizzando il formato delle risorse incorporate di AAPT, puoi definire tutte e tre le risorse nello stesso file XML, come mostrato nell'esempio seguente.
Per disegnare un vettore animato, inserisci il file in 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>
Il tag XML <aapt:attr >
indica all'AAPT di trattare l'elemento figlio del tag come una risorsa ed estrarlo nel proprio file di risorse. Il valore nel nome dell'attributo specifica dove
utilizzare la risorsa incorporata all'interno del tag principale.
AAPT genera i file e i nomi delle risorse per tutte le risorse incorporate. Le applicazioni create utilizzando questo formato incorporato sono compatibili con tutte le versioni di Android.