Android AnimatedVectorDrawable de base


Exemple

Un AnimatedVectorDrawable nécessite au moins 3 composants:

  • Un VectorDrawable qui sera manipulé
  • Un objectAnimator qui définit quelle propriété à modifier et comment
  • AnimatedVectorDrawable lui AnimatedVectorDrawable même qui connecte objectAnimator à VectorDrawable pour créer l'animation

Ce qui suit crée un triangle qui transforme sa couleur du noir au rouge.

Le VectorDrawable , nom du fichier: triangle_vector_drawable.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">

    <path
        android:name="triangle"
        android:fillColor="@android:color/black"
        android:pathData="M0,24 l12,-24 l12,24 z"/>

</vector>

objectAnimator , filename: color_change_animator.xml

<objectAnimator xmlns:android="http://schemas.android.com/apk/res/android"
    android:propertyName="fillColor"
    android:duration="2000"
    android:repeatCount="infinite"
    android:valueFrom="@android:color/black"
    android:valueTo="@android:color/holo_red_light"/>

AnimatedVectorDrawable , nom du fichier: triangle_animated_vector.xml

<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/triangle_vector_drawable">

    <target
        android:animation="@animator/color_change_animator"
        android:name="triangle"/>

</animated-vector>

Notez que <target> spécifie android:name="triangle" qui correspond au <path> dans le VectorDrawable . Un objet VectorDrawable peut contenir plusieurs éléments et la propriété android:name est utilisée pour définir l'élément qui est ciblé.

Résultat:

entrer la description de l'image ici