Animationsressourcen

Eine Animationsressource kann einen von zwei Animationstypen definieren:

Eigenschaftsanimation
Erstellt eine Animation, indem die Attributwerte eines Objekts über einen bestimmten Zeitraum geändert werden mit Animator.
Animation ansehen

Mit dem Framework für Animationen können Sie zwei Arten von Animationen ausführen:

Eigenschaftsanimation

Eine in XML definierte Animation, die die Eigenschaften des Zielobjekts ändert, z. B. Hintergrundfarbe oder Alphawert über einen festgelegten Zeitraum hinweg.

Dateispeicherort:
res/animator/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
Datentyp der kompilierten Ressource:
Ressourcenzeiger auf ValueAnimator, ObjectAnimator, oder AnimatorSet
Ressourcenreferenz:
Im Java- oder Kotlin-Code: R.animator.filename
XML: @[package:]animator/filename
Syntax:
<set
  android:ordering=["together" | "sequentially"]>

    <objectAnimator
        android:propertyName="string"
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <animator
        android:duration="int"
        android:valueFrom="float | int | color"
        android:valueTo="float | int | color"
        android:startOffset="int"
        android:repeatCount="int"
        android:repeatMode=["restart" | "reverse"]
        android:valueType=["intType" | "floatType"]/>

    <set>
        ...
    </set>
</set>

Die Datei muss ein einzelnes Stammelement haben: entweder <set>, <objectAnimator> oder <valueAnimator>. Sie können Animationselemente einschließlich anderer Elemente im <set>-Element gruppieren <set>-Elemente.

Elemente:
<set>
Ein Container, der andere Animationselemente enthält (<objectAnimator>, <valueAnimator> oder andere <set>-Elemente. Stellt dar ein AnimatorSet.

Sie können verschachtelte <set>-Tags angeben, um Animationen gruppieren. Für jede <set> kann ein eigener Wert festgelegt werden ordering-Attribut.

Attribute:

android:ordering
Keyword: Gibt die Wiedergabereihenfolge der Animationen in diesem Satz an.
WertBeschreibung
sequentiallyAnimationen in dieser Serie werden der Reihe nach abgespielt.
together (Standard)Animationen in diesem Set gleichzeitig abspielen.
<objectAnimator>
Animiert eine bestimmte Eigenschaft eines Objekts über einen bestimmten Zeitraum. Stellt dar ein ObjectAnimator.

Attribute:

android:propertyName
String: Erforderlich. Die zu animierende Eigenschaft des Objekts, auf die mit seinem Namen verwiesen wird. Sie können beispielsweise angeben, "alpha" oder "backgroundColor" für ein View-Objekt. Das objectAnimator-Element stellt kein target-Element bereit Attribut. Daher können Sie das Objekt in der XML-Deklaration nicht auf "animieren" setzen. Sie müssen blähen Sie Ihre Animations-XML-Ressource auf, indem Sie loadAnimator() aufrufen und setTarget() aufrufen, um Das Zielobjekt, das diese Eigenschaft enthält.
android:valueTo
float, int oder color. Erforderlich. Wert, bei dem die animierte Eigenschaft endet Farben werden repräsentiert als sechsstellige Hexadezimalzahlen wie z. B. #333333.
android:valueFrom
float, int oder color. Der Wert, bei dem die animierte Eigenschaft beginnt. Falls nicht angegeben ist, beginnt die Animation bei dem Wert, der mit der Methode get des Attributs abgerufen wurde. Farben werden repräsentiert als sechsstellige Hexadezimalzahlen wie z. B. #333333.
android:duration
int: Die Zeit der Animation in Millisekunden. 300 Millisekunden ist die Standardeinstellung.
android:startOffset
int: Die Anzahl der Millisekunden, um die die Animation nach dem start() wird aufgerufen.
android:repeatCount
int: Gibt an, wie oft eine Animation wiederholt werden soll. Auf "-1" setzen, um unbegrenzt wiederholen oder in eine positive Ganzzahl umwandeln. Der Wert "1" bedeutet beispielsweise, dass die Animation wird nach der ersten Ausführung der Animation einmal wiederholt, sodass die Animation insgesamt zweifach. Der Standardwert ist "0", d. h., es gibt keine Wiederholung.
android:repeatMode
int: Gibt an, wie sich eine Animation verhält, wenn das Ende der Animation erreicht ist. android:repeatCount muss auf eine positive Ganzzahl oder "-1" festgelegt werden, damit dieses Attribut wirksam wird. Auf "reverse" festlegen um die Animation bei jedem Durchlauf in umgekehrter Richtung zu drehen, oder mit "restart", um die Animation zu starten. jedes Mal von vorn beginnen.
android:valueType
Keyword: Geben Sie dieses Attribut nicht an, wenn der Wert eine Farbe ist. Das Animations-Framework verarbeitet Farben automatisch Werte.
WertBeschreibung
intTypeGibt an, dass die animierten Werte Ganzzahlen sind.
floatType (Standard)Gibt an, dass die animierten Werte Gleitkommazahlen sind.
<animator>
Lässt eine Animation über einen bestimmten Zeitraum zu. Stellt eine ValueAnimator dar.

Attribute:

android:valueTo
float, int oder color. Erforderlich. Der Wert, bei dem die Animation endet. Farben werden repräsentiert als sechsstellige Hexadezimalzahlen wie z. B. #333333.
android:valueFrom
float, int oder color. Erforderlich. Der Wert, bei dem die Animation beginnt. Farben werden repräsentiert als sechsstellige Hexadezimalzahlen wie z. B. #333333.
android:duration
int: Die Zeit der Animation in Millisekunden. Die Standardeinstellung ist 300 ms.
android:startOffset
int: Die Anzahl der Millisekunden, um die die Animation nach dem start() wird aufgerufen.
android:repeatCount
int: Gibt an, wie oft eine Animation wiederholt werden soll. Auf "-1" setzen, um unbegrenzt wiederholen oder in eine positive Ganzzahl umwandeln. Der Wert "1" bedeutet beispielsweise, dass die Animation wird nach der ersten Ausführung der Animation einmal wiederholt, sodass die Animation insgesamt zweifach. Der Standardwert ist "0", d. h., es gibt keine Wiederholung.
android:repeatMode
int: Gibt an, wie sich eine Animation verhält, wenn das Ende der Animation erreicht ist. android:repeatCount muss auf eine positive Ganzzahl oder "-1" festgelegt werden, damit dieses Attribut wirksam wird. Auf "reverse" festlegen um die Animation bei jedem Durchlauf in umgekehrter Richtung zu drehen, oder mit "restart", um die Animation zu starten. jedes Mal von vorn beginnen.
android:valueType
Keyword: Geben Sie dieses Attribut nicht an, wenn der Wert eine Farbe ist. Das Animations-Framework verarbeitet Farben automatisch Werte.
WertBeschreibung
intTypeGibt an, dass die animierten Werte Ganzzahlen sind.
floatType (Standard)Gibt an, dass die animierten Werte Gleitkommazahlen sind.
Beispiel:

XML-Datei gespeichert unter res/animator/property_animator.xml:

<set android:ordering="sequentially">
    <set>
        <objectAnimator
            android:propertyName="x"
            android:duration="500"
            android:valueTo="400"
            android:valueType="intType"/>
        <objectAnimator
            android:propertyName="y"
            android:duration="500"
            android:valueTo="300"
            android:valueType="intType"/>
    </set>
    <objectAnimator
        android:propertyName="alpha"
        android:duration="500"
        android:valueTo="1f"/>
</set>

Erhöhen Sie zum Ausführen dieser Animation die XML-Ressourcen in Ihrem Code in ein AnimatorSet-Objekt und legen Sie dann die Zielobjekte für alle Animationen fest. bevor der Animationssatz gestartet wird. Durch den Aufruf von setTarget() wird der Einfachheit halber ein einzelnes Zielobjekt für alle untergeordneten Elemente von AnimatorSet festgelegt. Der folgende Code zeigt, wie dies funktioniert:

Kotlin

val set: AnimatorSet = AnimatorInflater.loadAnimator(myContext, R.animator.property_animator)
    .apply {
        setTarget(myObject)
        start()
    }

Java

AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
    R.animator.property_animator);
set.setTarget(myObject);
set.start();
Siehe auch:

Animation ansehen

Das Framework für Ansichtsanimationen unterstützt sowohl Tween- als auch Frame-by-Frame-Animationen, die beide deklariert sind. in XML vorliegen. In den folgenden Abschnitten wird die Verwendung beider Methoden beschrieben.

Animation für ältere Kinder

Eine in XML definierte Animation, die Übergänge in einer Grafik ausführt, z. B. das Drehen, Verblassen, Bewegen und Dehnen.

Dateispeicherort:
res/anim/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
Datentyp der kompilierten Ressource:
Ressourcenzeiger auf ein Animation
Ressourcenreferenz:
In Java: R.anim.filename
XML: @[package:]anim/filename
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@[package:]anim/interpolator_resource"
    android:shareInterpolator=["true" | "false"] >
    <alpha
        android:fromAlpha="float"
        android:toAlpha="float" />
    <scale
        android:fromXScale="float"
        android:toXScale="float"
        android:fromYScale="float"
        android:toYScale="float"
        android:pivotX="float"
        android:pivotY="float" />
    <translate
        android:fromXDelta="float"
        android:toXDelta="float"
        android:fromYDelta="float"
        android:toYDelta="float" />
    <rotate
        android:fromDegrees="float"
        android:toDegrees="float"
        android:pivotX="float"
        android:pivotY="float" />
    <set>
        ...
    </set>
</set>

Die Datei muss ein einzelnes Stammelement haben: entweder ein <alpha>, <scale>, <translate> <rotate>- oder <set>-Element, das Eine oder mehrere Gruppen anderer Animationselemente, einschließlich verschachtelter <set>-Elemente.

Elemente:
<set>
Ein Container, der andere Animationselemente enthält (<alpha>, <scale>, <translate>, <rotate>) oder andere <set>-Elemente. Stellt eine AnimationSet dar.

Attribute:

android:interpolator
Interpolator-Ressource Ein Interpolator, das auf die Animation angewendet werden soll. Der Wert muss ein Verweis auf eine Ressource sein, die einen Interpolator angibt. keinen Interpolatorklassennamen. Es gibt einen Standardinterpolator auf der Plattform verfügbaren Ressourcen oder Sie können Ihre eigene Interpolator-Ressource erstellen. Weitere Informationen zu Interpolatoren finden Sie in der folgenden Diskussion.
android:shareInterpolator
Boolescher Wert. "true", wenn Sie denselben Interpolator für alle untergeordneten Elemente verwenden möchten Elemente.
<alpha>
Eine Ein- oder Ausblendungsanimation Stellt eine AlphaAnimation dar.

Attribute:

android:fromAlpha
Gleitkommazahl. Anfangsoffset der Deckkraft, wobei 0.0 transparent und 1.0 ist ist opak.
android:toAlpha
Gleitkommazahl. Endversatz für die Deckkraft, wobei 0,0 für transparent und 1,0 ist ist opak.

Weitere von <alpha> unterstützte Attribute finden Sie in der Klassenreferenz zu Animation, deren XML-Attribute von diesem Element übernommen werden.

<scale>
Eine Animation zur Größenanpassung. Sie können den Mittelpunkt des Bildes angeben, ab dem es wächst. nach innen oder außen durch Angabe von pivotX und pivotY. Wenn diese Werte beispielsweise 0,0 (die obere linke Ecke) ist das Wachstum nach unten und nach rechts. Stellt eine ScaleAnimation dar.

Attribute:

android:fromXScale
Gleitkommazahl. Größenversatz zu Beginn X, wobei 1.0 keine Änderung bedeutet.
android:toXScale
Gleitkommazahl. Endversatz in der Größe X, wobei 1,0 keine Änderung bedeutet.
android:fromYScale
Gleitkommazahl. Y-Anfangsversatz für die Größe, wobei 1,0 keine Änderung bedeutet.
android:toYScale
Gleitkommazahl. Endversatz der Y-Achse, wobei 1,0 keine Änderung bedeutet.
android:pivotX
Gleitkommazahl. Die X-Koordinate, die beim Skalieren des Objekts unveränderlich bleiben soll.
android:pivotY
Gleitkommazahl. Die Y-Koordinate, die beim Skalieren des Objekts unveränderlich bleiben soll.

Weitere von <scale> unterstützte Attribute finden Sie in der Klassenreferenz zu Animation, deren XML-Attribute von diesem Element übernommen werden.

<translate>
Eine vertikale und/oder horizontale Bewegung. Stellt ein TranslateAnimation Folgende Attribute werden in jedem dieser drei Formate unterstützt: <ph type="x-smartling-placeholder">
    </ph>
  • Werte von -100 bis 100, die auf "%" enden und einen Prozentsatz angeben relativ zu sich selbst.
  • Werte von -100 bis 100, die auf "%p" enden und einen Prozentsatz relativ zu Parent.
  • Ein Gleitkommawert ohne Suffix, der einen absoluten Wert angibt.

Attribute:

android:fromXDelta
Gleitkommazahl oder Prozentsatz: Offset X zu Beginn Wird entweder in Pixeln relativ in die normale Position verschieben, z. B. "5"; Prozentangabe im Verhältnis zur Breite des Elements, z. B. "5%"; oder in Prozent relativ zur übergeordneten Breite, z. B. "5%p".
android:toXDelta
Gleitkommazahl oder Prozentsatz: Offset am Ende X. Wird entweder in Pixeln relativ in die normale Position verschieben, z. B. "5"; Prozentangabe im Verhältnis zur Breite des Elements, z. B. "5%"; oder in Prozent relativ zur übergeordneten Breite, z. B. "5%p".
android:fromYDelta
Gleitkommazahl oder Prozentsatz: Y-Versatz zu Beginn Wird entweder in Pixeln relativ in die normale Position verschieben, z. B. "5"; in Prozent im Verhältnis zur Höhe des Elements, z. B. "5%"; oder bezogen auf die übergeordnete Höhe, z. B. "5%p", angegeben werden.
android:toYDelta
Gleitkommazahl oder Prozentsatz: Offset am Y-Ende. Wird entweder in Pixeln relativ in die normale Position verschieben, z. B. "5"; in Prozent im Verhältnis zur Höhe des Elements, z. B. "5%"; oder bezogen auf die übergeordnete Höhe, z. B. "5%p", angegeben werden.

Weitere von <translate> unterstützte Attribute finden Sie in der Klassenreferenz zu Animation, deren XML-Attribute von diesem Element übernommen werden.

<rotate>
Eine Rotationsanimation. Stellt eine RotateAnimation dar.

Attribute:

android:fromDegrees
Gleitkommazahl. Ausgangswinkel in Grad.
android:toDegrees
Gleitkommazahl. Winkelendposition in Grad
android:pivotX
Gleitkommazahl oder Prozentsatz: Die X-Koordinate des Drehmittelpunkts. Ausgedrückt entweder in Pixeln relativ zum linken Rand des Objekts, z. B. "5" in Prozent relativ zum linken Rand des Objekts hinzufügen, z. B. "5%"; oder in Prozent relativ zum übergeordneten Element am linken Rand des Containers, z. B. "5%p".
android:pivotY
Gleitkommazahl oder Prozentsatz: Die Y-Koordinate des Drehmittelpunkts. Ausgedrückt entweder in Pixeln relativ zum oberen Rand des Objekts, z. B. "5" in Prozent relativ an den oberen Rand des Objekts an, z. B. "5%"; oder in Prozent relativ zum übergeordneten Element am oberen Rand des Containers, z. B. "5%p".

Weitere von <rotate> unterstützte Attribute finden Sie in der Klassenreferenz zu Animation, deren XML-Attribute von diesem Element übernommen werden.

Beispiel:

XML-Datei gespeichert unter res/anim/hyperspace_jump.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <scale
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromXScale="1.0"
        android:toXScale="1.4"
        android:fromYScale="1.0"
        android:toYScale="0.6"
        android:pivotX="50%"
        android:pivotY="50%"
        android:fillAfter="false"
        android:duration="700" />
    <set
        android:interpolator="@android:anim/accelerate_interpolator"
        android:startOffset="700">
        <scale
            android:fromXScale="1.4"
            android:toXScale="0.0"
            android:fromYScale="0.6"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
        <rotate
            android:fromDegrees="0"
            android:toDegrees="-45"
            android:toYScale="0.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:duration="400" />
    </set>
</set>

Mit dem folgenden Anwendungscode wird die Animation auf ein ImageView- und startet die Animation:

Kotlin

val image: ImageView = findViewById(R.id.image)
val hyperspaceJump: Animation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump)
image.startAnimation(hyperspaceJump)

Java

ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
Siehe auch:

Interpolatoren

Ein Interpolator ist ein in XML definierter Animationsmodifikator, der die Änderungsrate in einem Animation. So können Sie Ihre vorhandenen Animationseffekte beschleunigen, verlangsamen, wiederholen abgesprungen usw.

Ein Interpolator wird auf ein Animationselement mit der android:interpolator angewendet. -Attribut, dessen Wert ein Verweis auf eine Interpolatorressource ist.

Alle in Android verfügbaren Interpolatoren sind Unterklassen der Interpolator-Klasse. Für jede Interpolatorklasse wird Android enthält eine öffentliche Ressource, auf die Sie verweisen können, um den Interpolator auf eine Animation anzuwenden mit dem Attribut android:interpolator. Die folgende Tabelle gibt die Ressource an, die für jeden Interpolator verwendet werden soll:

Interpolator-KlasseRessourcen-ID
AccelerateDecelerateInterpolator @android:anim/accelerate_decelerate_interpolator
AccelerateInterpolator @android:anim/accelerate_interpolator
AnticipateInterpolator @android:anim/anticipate_interpolator
AnticipateOvershootInterpolator @android:anim/anticipate_overshoot_interpolator
BounceInterpolator @android:anim/bounce_interpolator
CycleInterpolator @android:anim/cycle_interpolator
DecelerateInterpolator @android:anim/decelerate_interpolator
LinearInterpolator @android:anim/linear_interpolator
OvershootInterpolator @android:anim/overshoot_interpolator

So wenden Sie eine dieser Optionen mit dem Attribut android:interpolator an:

<set android:interpolator="@android:anim/accelerate_interpolator">
    ...
</set>

Benutzerdefinierte Interpolatoren

Wenn Sie mit den von der Plattform bereitgestellten Interpolatoren nicht zufrieden sind, können Sie eine benutzerdefinierte Interpolatorressource mit geänderten Attributen erstellen. Beispielsweise können Sie die Rate der Beschleunigung für AnticipateInterpolator oder passen Sie die Anzahl der Zyklen für CycleInterpolator. Dazu müssen Sie Erstellen Sie Ihre eigene Interpolator-Ressource in einer XML-Datei.

Dateispeicherort:
res/anim/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
Datentyp der kompilierten Ressource:
Ressourcenzeiger auf das entsprechende Interpolatorobjekt
Ressourcenreferenz:
XML: @[package:]anim/filename
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android"
    android:attribute_name="value"
    />

Wenn Sie keine Attribute anwenden, funktioniert der Interpolator genau wie die von der Plattform bereitgestellt werden (siehe Tabelle oben).

Elemente:
Beachten Sie, dass jede Interpolator-Implementierung, der in XML definiert ist, einen Namen hat, der mit einem Kleinbuchstaben beginnt.

<accelerateDecelerateInterpolator>
Die Änderungsrate beginnt und endet langsam, steigt aber im Laufe der Zeit in der Mitte.

Keine Attribute.

<accelerateInterpolator>
Die Änderungsrate beginnt langsam und steigt dann.

Attribute:

android:factor
Gleitkommazahl. Die Beschleunigungsrate. Der Standardwert ist 1.
<anticipateInterpolator>
Der Wandel beginnt rückwärts und verläuft dann nach vorne.

Attribute:

android:tension
Gleitkommazahl. Das Maß an Spannung, die angewendet werden soll. Der Standardwert ist 2.
<anticipateOvershootInterpolator>
Die Änderung beginnt rückwärts, wird dann nach vorne geworfen und überschreitet den Zielwert wird mit dem Endwert ausgeglichen.

Attribute:

android:tension
Gleitkommazahl. Das Maß an Spannung, die angewendet werden soll. Der Standardwert ist 2.
android:extraTension
Gleitkommazahl. Betrag, mit dem die Spannung multipliziert werden soll. Die Standardeinstellung ist 1.5
<bounceInterpolator>
Die Änderung wird erst am Ende abgebrochen.

Keine Attribute

<cycleInterpolator>
Wiederholt die Animation über eine bestimmte Anzahl von Zyklen Die Änderungsrate folgt einer Sinusoid-Muster.

Attribute:

android:cycles
Ganzzahl. Die Anzahl der Zyklen. Der Standardwert ist 1.
<decelerateInterpolator>
Die Änderungsrate beginnt schnell und nimmt dann ab.

Attribute:

android:factor
Gleitkommazahl. Die Verzögerungsrate. Der Standardwert ist 1.
<linearInterpolator>
Die Änderungsrate ist konstant.

Keine Attribute.

<overshootInterpolator>
Die Änderung geht nach vorne, übertrifft den letzten Wert und kommt dann wieder zurück.

Attribute:

android:tension
Gleitkommazahl. Das Maß an Spannung, die angewendet werden soll. Der Standardwert ist 2.
Beispiel:

XML-Datei gespeichert unter res/anim/my_overshoot_interpolator.xml:

<?xml version="1.0" encoding="utf-8"?>
<overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
    android:tension="7.0"
    />

Diese Animations-XML wendet den Interpolator an:

<scale xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@anim/my_overshoot_interpolator"
    android:fromXScale="1.0"
    android:toXScale="3.0"
    android:fromYScale="1.0"
    android:toYScale="3.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="700" />

Frame animation

Eine in XML definierte Animation, die wie ein Film eine Folge von Bildern zeigt.

Dateispeicherort:
res/drawable/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
Datentyp der kompilierten Ressource:
Ressourcenzeiger auf ein AnimationDrawable
Ressourcenreferenz:
In Java: R.drawable.filename
XML: @[package:]drawable.filename
Syntax:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot=["true" | "false"] >
    <item
        android:drawable="@[package:]drawable/drawable_resource_name"
        android:duration="integer" />
</animation-list>
Elemente:
<animation-list>
Erforderlich. Dies muss das Stammelement sein. Enthält mindestens eins <item>-Elemente.

Attribute:

android:oneshot
Boolescher Wert. "true", wenn Sie die Animation einmal ausführen möchten. "false", um die Schleife Animation.
<item>
Ein einzelner Animationsframe. Muss einem <animation-list>-Element untergeordnet sein.

Attribute:

android:drawable
Drawable resource. Das für diesen Frame zu verwendende Drawable.
android:duration
Ganzzahl. Die Dauer, für die dieser Frame angezeigt werden soll, in Millisekunden.
Beispiel:

XML-Datei gespeichert unter res/drawable/rocket_thrust.xml:

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">
    <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
    <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>

Mit dem folgenden Anwendungscode wird die Animation als Hintergrund für ein View festgelegt, und dann die Animation abspielen:

Kotlin

val rocketImage: ImageView = findViewById(R.id.rocket_image)
rocketImage.setBackgroundResource(R.drawable.rocket_thrust)

val rocketAnimation = rocketImage.background
if (rocketAnimation is Animatable) {
    rocketAnimation.start()
}

Java

ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);

rocketAnimation = rocketImage.getBackground();
if (rocketAnimation instanceof Animatable) {
    ((Animatable)rocketAnimation).start();
}
Siehe auch: