Karmaşık XML kaynaklarını satır içi

Belirli kaynak türleri, XML dosyalarıyla temsil edilen birden çok karmaşık kaynağın bileşimidir. Örnek olarak, bir vektörü kapsayan çizilebilir bir kaynak olan animasyonlu bir çekilebilir vektör gösterilebilir. çizim ve animasyon. Bu, takip ediliyor örnekler.

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" />

Vektör ve animasyonlar başka bir yerde yeniden kullanılırsa bu, animasyonlu çekilebilir vektör. Ancak bu dosyalar yalnızca bu çizim daha kompakt bir yönteme sahip olursunuz.

AAPT'nin satır içi kaynak biçimini kullanarak üç kaynağı da aynı XML dosyasında tanımlayabilirsiniz. aşağıdaki örnekte gösterilmiştir. Çekilebilir animasyonlu bir vektör için dosyayı res/drawable/ altına yerleştirin.

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>

<aapt:attr > XML etiketi, AAPT'ye etiketin alt öğesini bir kaynak dosyasına aktarmanızı öneririz. Özellik adındaki değer, kullanın.

AAPT tüm satır içi kaynaklar için kaynak dosyaları ve adlar oluşturur. Bu satır içi biçim kullanılarak oluşturulan uygulamalar tüm Android sürümleriyle uyumludur.