Resource XML kompleks inline

Jenis resource tertentu merupakan komposisi dari beberapa resource kompleks yang direpresentasikan oleh file XML. Salah satu contohnya adalah animasi drawable vektor, yaitu resource yang dapat digambar yang merangkum drawable vektor dan animasi. Jenis ini memerlukan penggunaan minimal tiga file 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" />
    

Ada banyak file yang dibutuhkan untuk membuat satu animasi drawable vektor! Jika drawable vektor dan animasi digunakan ulang di tempat lain, cara ini adalah yang paling tepat untuk menerapkan animasi drawable vektor. Jika hanya akan digunakan untuk animasi drawable vektor ini, ada cara yang lebih sederhana untuk menerapkannya.

Menggunakan format resource inline AAPT, Anda dapat menentukan ketiga resource dalam file XML yang sama. Karena kita akan membuat animasi drawable vektor, sertakan file dalam 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>
    

Tag XML <aapt:attr > memberi tahu AAPT bahwa turunan tag harus diperlakukan sebagai resource dan diekstrak ke file resource-nya sendiri. Nilai dalam nama atribut menentukan tempat untuk menggunakan resource inline dalam tag induk.

AAPT akan membuat file resource dan nama untuk semua resource inline. Aplikasi yang di-build menggunakan format inline ini kompatibel dengan semua versi Android.