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.