Animationsressourcen

Eine Animationsressource kann eine von zwei Arten von Animationen definieren:

Property-Animation
Zum Erstellen einer Animation, indem die Eigenschaftswerte eines Objekts über einen festgelegten Zeitraum mit einem Animator geändert werden.
Animation ansehen

Mit dem Framework für die Animation können Sie zwei Arten von Animationen erstellen:

  • Tween-Animation: Erstellt eine Animation, indem für ein einzelnes Bild eine Reihe von Transformationen mit einer Animation ausgeführt wird.
  • Frame-Animation: Es wird eine Animation erstellt, indem eine Abfolge von Bildern in der richtigen Reihenfolge mit einer AnimationDrawable angezeigt wird.

Property-Animation

Eine in XML definierte Animation, bei der Eigenschaften des Zielobjekts wie Hintergrundfarbe oder Alphawert über einen festgelegten Zeitraum geändert werden.

Dateispeicherort:
res/animator/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
kompilierter Ressourcentyp:
Ressourcenverweis auf ValueAnimator, ObjectAnimator oder AnimatorSet
Ressourcenreferenz:
In Java- oder Kotlin-Code: R.animator.filename
In 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 innerhalb des <set>-Elements gruppieren, einschließlich anderer <set>-Elemente.

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

Du kannst verschachtelte <set>-Tags angeben, um Animationen weiter zu gruppieren. Für jede <set> kann ein eigenes ordering-Attribut definiert werden.

Attribute:

android:ordering
Keyword. Gibt die Wiedergabereihenfolge der Animationen in diesem Satz an.
AntwortBeschreibung
sequentiallyAnimationen in diesem Satz nacheinander abspielen.
together (Standard)Animationen in diesem Satz gleichzeitig abspielen.
<objectAnimator>
Animiert eine bestimmte Eigenschaft eines Objekts über einen bestimmten Zeitraum. Stellt einen ObjectAnimator dar.

Attribute:

android:propertyName
String. Erforderlich. Die zu animierende Objekteigenschaft, auf die durch den Namen verwiesen wird Sie können beispielsweise "alpha" oder "backgroundColor" für ein View-Objekt angeben. Das objectAnimator-Element stellt jedoch kein target-Attribut bereit, sodass Sie das Objekt in der XML-Deklaration nicht als animiert festlegen können. Sie müssen Ihre Animations-XML-Ressource durch Aufrufen von loadAnimator() erweitern und setTarget() aufrufen, um das Zielobjekt festzulegen, das diese Eigenschaft enthält.
android:valueTo
Gleitkommazahl, Ganzzahl oder Farbe sein. Erforderlich. Der Wert, an dem die animierte Eigenschaft endet. Farben werden als sechsstellige Hexadezimalzahlen dargestellt, z. B. #333333.
android:valueFrom
Gleitkommazahl, Ganzzahl oder Farbe sein. Der Wert, bei dem die animierte Eigenschaft beginnt. Wenn keine Angabe erfolgt, startet die Animation bei dem Wert, der von der Methode get des Attributs abgerufen wird. Farben werden als sechsstellige Hexadezimalzahlen dargestellt, z. B. #333333.
android:duration
int: Die Zeit der Animation in Millisekunden. Die Standardeinstellung ist 300 Millisekunden.
android:startOffset
int: Die Anzahl der Millisekunden, die die Animation verzögert, nachdem start() aufgerufen wurde.
android:repeatCount
int. Damit wird festgelegt, wie oft eine Animation wiederholt werden soll. Legen Sie "-1" fest, um eine unbegrenzte Wiederholung oder eine positive Ganzzahl festzulegen. Beispielsweise bedeutet ein Wert von "1", dass die Animation nach der ersten Ausführung der Animation einmalig wiederholt wird, also insgesamt zweimal. Der Standardwert ist "0", d. h. keine Wiederholung.
android:repeatMode
int. Damit wird festgelegt, wie sich eine Animation verhält, wenn das Ende der Animation erreicht ist. android:repeatCount muss auf eine positive Ganzzahl oder "-1" festgelegt sein, damit dieses Attribut wirksam wird. Legen Sie "reverse" fest, damit die Animation bei jedem Durchlauf in umgekehrter Richtung ausgeführt wird, oder "restart", damit die Animation jedes Mal von Anfang an wiederholt wird.
android:valueType
Keyword. Geben Sie dieses Attribut nicht an, wenn der Wert eine Farbe ist. Farbwerte werden vom Animations-Framework automatisch verarbeitet.
AntwortBeschreibung
intTypeGibt an, dass die animierten Werte Ganzzahlen sind.
floatType (Standard)Gibt an, dass die animierten Werte Gleitkommazahlen sind.
<animator>
Führt über einen bestimmten Zeitraum eine Animation aus. Stellt ValueAnimator dar.

Attribute:

android:valueTo
Gleitkommazahl, Ganzzahl oder Farbe sein. Erforderlich. Der Wert, an dem die Animation endet. Farben werden als sechsstellige Hexadezimalzahlen dargestellt, z. B. #333333.
android:valueFrom
Gleitkommazahl, Ganzzahl oder Farbe sein. Erforderlich. Der Wert, an dem die Animation beginnt. Farben werden als sechsstellige Hexadezimalzahlen dargestellt, z. B. #333333.
android:duration
int: Die Zeit der Animation in Millisekunden. Die Standardeinstellung ist 300 ms.
android:startOffset
int: Die Anzahl der Millisekunden, die die Animation verzögert, nachdem start() aufgerufen wurde.
android:repeatCount
int. Damit wird festgelegt, wie oft eine Animation wiederholt werden soll. Legen Sie "-1" fest, um eine unbegrenzte Wiederholung oder eine positive Ganzzahl festzulegen. Beispielsweise bedeutet ein Wert von "1", dass die Animation nach der ersten Ausführung der Animation einmalig wiederholt wird, also insgesamt zweimal. Der Standardwert ist "0", d. h. keine Wiederholung.
android:repeatMode
int. Damit wird festgelegt, wie sich eine Animation verhält, wenn das Ende der Animation erreicht ist. android:repeatCount muss auf eine positive Ganzzahl oder "-1" festgelegt sein, damit dieses Attribut wirksam wird. Legen Sie "reverse" fest, damit die Animation bei jedem Durchlauf in umgekehrter Richtung ausgeführt wird, oder "restart", damit die Animation jedes Mal von Anfang an wiederholt wird.
android:valueType
Keyword. Geben Sie dieses Attribut nicht an, wenn der Wert eine Farbe ist. Farbwerte werden vom Animations-Framework automatisch verarbeitet.
AntwortBeschreibung
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>

Infließen Sie zum Ausführen dieser Animation die XML-Ressourcen in Ihrem Code auf ein AnimatorSet-Objekt und legen Sie dann die Zielobjekte für alle Animationen fest, bevor Sie die Animation starten. Durch das Aufrufen von setTarget() wird der Einfachheit halber ein einzelnes Zielobjekt für alle untergeordneten Elemente des AnimatorSet-Elements festgelegt. Der folgende Code zeigt, wie das 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-für-Frame-Animationen, die beide in XML deklariert sind. In den folgenden Abschnitten wird die Verwendung dieser beiden Methoden beschrieben.

Animation für ältere Kinder

Eine in XML definierte Animation, die Übergänge in einer Grafik ausführt, z. B. Drehen, Ausblenden, Verschieben und Strecken.

Dateispeicherort:
res/anim/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
kompilierter Ressourcentyp:
Ressourcenverweis auf eine Animation
Ressourcenreferenz:
In Java: R.anim.filename
In 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 andere Animationselemente (einschließlich verschachtelter <set>-Elemente) enthält.

Elemente:
<set>
Ein Container, der andere Animationselemente (<alpha>, <scale>, <translate>, <rotate>) oder andere <set>-Elemente enthält. Stellt 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. Ein Interpolatorklassenname ist nicht zulässig. Auf der Plattform sind Standard-Interpolator-Ressourcen verfügbar. Sie können aber auch Ihre eigene Interpolator-Ressource erstellen. Weitere Informationen zu Interpolatoren finden Sie in der folgenden Diskussion.
android:shareInterpolator
Boolescher Wert. "true", wenn Sie für alle untergeordneten Elemente denselben Interpolator verwenden möchten.
<alpha>
Eine Ein- oder Ausblendungsanimation. Stellt AlphaAnimation dar.

Attribute:

android:fromAlpha
Gleitkommazahl. Startversatz für die Deckkraft, wobei 0,0 für transparent und 1,0 für undurchsichtig ist.
android:toAlpha
Gleitkommazahl. Offset der Enddeckkraft, wobei 0.0 transparent und 1.0 undurchsichtig ist.

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ößenänderung. Sie können den Mittelpunkt des Bildes angeben, von dem aus es nach außen oder innen wächst, indem Sie pivotX und pivotY angeben. Wenn diese Werte beispielsweise 0,0 (oben links) sind, verläuft das gesamte Wachstum nach unten und nach rechts. Stellt ScaleAnimation dar.

Attribute:

android:fromXScale
Gleitkommazahl. Startet Versatz der Größe X, wobei 1,0 keine Änderung hat.
android:toXScale
Gleitkommazahl. Endversatz X, wobei 1,0 keine Änderung ist.
android:fromYScale
Gleitkommazahl. Anfänglicher Y-Größenversatz, wobei 1,0 keine Änderung hat.
android:toYScale
Gleitkommazahl. Endversatz der Y-Größe, wobei 1,0 keine Änderung ist.
android:pivotX
Gleitkommazahl. Die X-Koordinate, die fixiert bleibt, wenn das Objekt skaliert wird.
android:pivotY
Gleitkommazahl. Die Y-Koordinate, die fixiert bleibt, wenn das Objekt skaliert wird.

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 TranslateAnimation dar. Folgende Attribute werden in einem dieser drei Formate unterstützt:
  • Werte von -100 bis 100, die auf „%“ enden, geben einen Prozentsatz relativ zu sich selbst an.
  • Werte von -100 bis 100, die auf „%p“ enden, geben einen Prozentsatz relativ zum übergeordneten Element an.
  • Ein Gleitkommawert ohne Suffix, der einen absoluten Wert angibt.

Attribute:

android:fromXDelta
Gleitkommazahl oder Prozentsatz: Start-X-Offset. Wird entweder in Pixeln relativ zur normalen Position (z. B. "5"), in Prozent relativ zur Breite des Elements (z. B. "5%") oder in Prozent relativ zur Breite des übergeordneten Elements (z. B. "5%p") ausgedrückt.
android:toXDelta
Gleitkommazahl oder Prozentsatz: Endversatz in X. Wird entweder in Pixeln relativ zur normalen Position (z. B. "5"), in Prozent relativ zur Breite des Elements (z. B. "5%") oder in Prozent relativ zur Breite des übergeordneten Elements (z. B. "5%p") ausgedrückt.
android:fromYDelta
Gleitkommazahl oder Prozentsatz: Y-Startversatz. Wird entweder in Pixeln relativ zur normalen Position (z. B. "5"), in Prozent relativ zur Elementhöhe (z. B. "5%") oder in Prozent relativ zur Höhe des übergeordneten Elements (z. B. "5%p") ausgedrückt.
android:toYDelta
Gleitkommazahl oder Prozentsatz: Offset am Ende Y. Wird entweder in Pixeln relativ zur normalen Position (z. B. "5"), in Prozent relativ zur Elementhöhe (z. B. "5%") oder in Prozent relativ zur Höhe des übergeordneten Elements (z. B. "5%p") ausgedrückt.

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 RotateAnimation dar.

Attribute:

android:fromDegrees
Gleitkommazahl. Winkelposition des Starts in Grad.
android:toDegrees
Gleitkommazahl. Winkelposition des Endpunkts in Grad.
android:pivotX
Gleitkommazahl oder Prozentsatz: Die X-Koordinate des Rotationsmittels. Wird entweder in Pixeln relativ zum linken Rand des Objekts (z. B. "5"), in Prozent relativ zum linken Rand des Objekts (z. B. "5%") oder in Prozent relativ zum linken Rand des übergeordneten Containers (z. B. "5%p") ausgedrückt.
android:pivotY
Gleitkommazahl oder Prozentsatz: Die Y-Koordinate des Drehmittelpunkts. Wird entweder in Pixeln relativ zum oberen Rand des Objekts (z. B. "5"), in Prozent relativ zum oberen Rand des Objekts (z. B. "5%") oder in Prozent relativ zum oberen Rand des übergeordneten Containers (z. B. "5%p") ausgedrückt.

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 angewendet und die Animation gestartet:

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 einer Animation beeinflusst. Dadurch können Ihre vorhandenen Animationseffekte beschleunigt, verzögert, wiederholt, abgesprungen usw. werden.

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

Alle in Android verfügbaren Interpolatoren sind Unterklassen der Interpolator-Klasse. Für jede Interpolatorklasse enthält Android eine öffentliche Ressource, auf die Sie verweisen können, um den Interpolator mithilfe des Attributs android:interpolator auf eine Animation anzuwenden. In der folgenden Tabelle ist die Ressource angegeben, die für jeden Interpolator verwendet werden soll:

InterpolatorklasseRessourcen-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. Sie können beispielsweise die Beschleunigungsrate für AnticipateInterpolator oder die Anzahl der Zyklen für CycleInterpolator anpassen. Dazu erstellen Sie Ihre eigene Interpolator-Ressource in einer XML-Datei.

Dateispeicherort:
res/anim/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
kompilierter Ressourcentyp:
Ressourcenzeiger auf das entsprechende Interpolatorobjekt
Ressourcenreferenz:
Im XML-Format: @[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 so, wie er von der Plattform bereitgestellt wird (siehe Tabelle oben).

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

<accelerateDecelerateInterpolator>
Die Änderungsrate beginnt und endet langsam, nimmt aber in die Mitte hin.

Keine Attribute.

<accelerateInterpolator>
Die Veränderungsgeschwindigkeit beginnt langsam und nimmt dann schneller zu.

Attribute:

android:factor
Gleitkommazahl. Die Beschleunigungsrate. Der Standardwert ist 1.
<anticipateInterpolator>
Die Veränderung beginnt rückwärts und geht dann nach vorn.

Attribute:

android:tension
Gleitkommazahl. Die Höhe der Spannung, die angewendet werden soll. Der Standardwert ist 2.
<anticipateOvershootInterpolator>
Die Änderung beginnt rückwärts, dann geht sie vorwärts und übertrifft den Zielwert und gleicht sich dann beim Endwert aus.

Attribute:

android:tension
Gleitkommazahl. Die Höhe der Spannung, die angewendet werden soll. Der Standardwert ist 2.
android:extraTension
Gleitkommazahl. Betrag, mit dem die Spannung multipliziert wird. Der Standardwert ist 1,5.
<bounceInterpolator>
Die Änderung kommt am Ende zurück.

Keine Attribute

<cycleInterpolator>
Die Animation wird für eine bestimmte Anzahl von Zyklen wiederholt. Die Änderungsrate folgt einem Sinusoidal-Muster.

Attribute:

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

Attribute:

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

Keine Attribute.

<overshootInterpolator>
Die Veränderung fliegt vorwärts, überschreitet den letzten Wert und kommt dann wieder zurück.

Attribute:

android:tension
Gleitkommazahl. Die Höhe der 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"
    />

In dieser Animations-XML wird der Interpolator angewendet:

<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 Abfolge von Bildern zeigt.

Dateispeicherort:
res/drawable/filename.xml
Der Dateiname wird als Ressourcen-ID verwendet.
kompilierter Ressourcentyp:
Ressourcenverweis auf eine AnimationDrawable
Ressourcenreferenz:
In Java: R.drawable.filename
In 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 ein oder mehrere <item>-Elemente.

Attribute:

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

Attribute:

android:drawable
Drawable-Ressource. Das Drawable, das für diesen Frame verwendet werden soll.
android:duration
Ganzzahl. Die Dauer in Millisekunden für die Anzeige dieses Frames.
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. Anschließend wird die Animation wiedergegeben:

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: