Resource XML kompleks inline

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

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 vektor drawable dan animasi digunakan ulang di tempat lain, cara ini adalah yang paling tepat untuk menerapkan animasi vektor drawable. Jika hanya akan digunakan untuk animasi vektor drawable 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 vektor drawable, 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.