Alcuni tipi di risorse sono una composizione di più risorse complesse rappresentate da file XML. Un esempio è un drawable vettoriale animato, che è una risorsa drawable che incapsula un vettore disegnabile e un'animazione. Ciò richiede l'uso di almeno tre file XML, come mostrato nell'esempio persone che seguo esempi.
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 vettore drawable e le animazioni vengono riutilizzati altrove, questo è il modo migliore per implementare drawable vettoriale animato. Ma se questi file vengono usati solo per il drawable vettoriale animato, c'è un modo più compatto per implementarle.
Utilizzando il formato di risorse in linea di AAPT, puoi definire tutte e tre le risorse nello stesso file XML, come
come mostrato nell'esempio che segue.
Per un drawable vettoriale animato, inserisci il file sotto 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 ad AAPT di trattare il tag secondario del tag come un
ed estrarla nel proprio file di risorse. Il valore nel nome dell'attributo specifica dove
per utilizzare la risorsa in linea all'interno del tag padre.
AAPT genera file e nomi di risorse per tutte le risorse in linea. Le applicazioni sviluppate utilizzando questo formato in linea sono compatibili con tutte le versioni di Android.