View Animation — was ist das, Tween Animation in Android

Autor: IT Sectr Veröffentlicht: 2026-03-01 Lesezeit: 8 Min.

View Animation ist ein veraltetes Animationssystem von Android API 1+, das mit View-Objekten durch Tween Animation (Alpha, Translate, Scale, Rotate) arbeitet. Google empfiehlt Property Animation (Animator) für alle neuen Projekte. Dieser Artikel erklärt die Prinzipien, Typen, XML-Markierung und Gründe für die Abkündigung.

Wichtige Punkte

  • View Animation — animiert View durch Tween Animation: Alpha, Translate, Scale, Rotate
  • XML-Definition — Animationen werden in res/anim/ mit , , , beschrieben
  • AnimationSet — Kombination mehrerer Animationen in einem Set mit gemeinsamen Parametern
  • Einschränkung — View Animation ändert keine Eigenschaften, sondern nur die Darstellung: Das View bleibt an der ursprünglichen Position
  • Property Animation — moderner Ersatz (Animator), der mit echten Objekteigenschaften arbeitet

Was ist View Animation?

View Animation ist ein Android-Animationssubsystem, das auf View-Ebene (API 1+) arbeitet. Es verwendet vier Arten von Tween Animation: AlphaAnimation (Transparenz), TranslateAnimation (Bewegung), ScaleAnimation (Skalierung) und RotateAnimation (Drehung). Jede Animation wird in einer XML-Datei im Ordner res/anim/ beschrieben oder programmatisch in Kotlin-Code erstellt.

Der View-Animation-Mechanismus ändert nicht die realen Eigenschaften eines Views — er zeichnet das View an einer neuen Position, Skalierung oder Transparenz neu, aber der onTouchEvent()-Callback empfängt die Koordinaten des ursprünglichen Standorts. Dies ist eine wichtige Einschränkung, die als Klickabweichung (click mismatch) bekannt ist.

Laut der Android-Entwicklerdokumentation (2026) hat Google View Animation ab Android 3.0 (API 11) als veraltete API markiert. Für neue Projekte wird Property Animation empfohlen — Animator, AnimatorSet und ObjectAnimator, die über Setter-Methoden mit echten Objekteigenschaften arbeiten.

Arten von Tween Animation

Tween Animation ist eine Animation „zwischen“ Schlüsselbildern: Sie definieren den Anfangs- und Endzustand, und das System berechnet die Zwischenbilder. Android bietet vier Standardtypen, jeder mit seinem eigenen Parametersatz.

AlphaAnimation

AlphaAnimation ändert die Transparenz eines Views von fromAlpha bis toAlpha. Die Werte reichen von 0.0 (vollständig transparent) bis 1.0 (vollständig sichtbar). Standardmäßig dauert die Animation 300 ms. Der Parameter fillAfter=true belässt das View im endgültigen Transparenzzustand.

xml
<!-- res/anim/fade_out.xml -->
<?xml version="1.0" encoding="utf-8"?>
<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="1.0"
    android:toAlpha="0.0"
    android:duration="500"
    android:fillAfter="true" />

TranslateAnimation

TranslateAnimation bewegt ein View von der Startposition (fromXDelta, fromYDelta) zur Endposition (toXDelta, toYDelta). Werte werden in Pixeln, Prozent des Eltern-Elements oder Prozent des Views selbst angegeben. Beispielsweise bedeutet 100% 100% der Breite des Views.

ScaleAnimation

ScaleAnimation skaliert ein View relativ zum Punkt pivotX/pivotY. fromXScale=1.0, toXScale=2.0 verdoppelt die Breite. Der Parameter pivotType bestimmt, worauf sich der Drehpunkt bezieht: self, parent oder absolute. Die Skalierungsanimation ändert nicht die tatsächlichen Abmessungen des Views — nur die Darstellung.

RotateAnimation

RotateAnimation dreht ein View um einen Drehpunkt um einen Winkel von fromDegrees bis toDegrees. Der Winkel wird in Grad gemessen: 0 ist die ursprüngliche Position, 360 eine vollständige Drehung. Für unendliche Drehung verwenden Sie repeatCount=INFINITE.

View Animation vs Property Animation

Der Unterschied zwischen View Animation und Property Animation (Animator) ist ein grundlegender Unterschied in der Android-Animationsarchitektur. View Animation arbeitet nur auf der Darstellungsebene, während Property Animation die tatsächlichen Objekteigenschaften über Setter-Methoden ändert, was zu Layout-Aktualisierungen führt.

KriteriumView AnimationProperty Animation
API-LevelAPI 1+ (veraltet)API 11+ (empfohlen)
Was wird animiertView-Darstellung (Canvas)Objekteigenschaften (Setter)
Klick nach AnimationAn ursprünglicher PositionAn neuer Position
Animationstypen4 Tween + AnimationSetObjectAnimator, ValueAnimator, AnimatorSet
LayoutParamsÄndert nichtÄndert über setLayoutParams
LeistungHoch (nur Canvas)Mittel (abhängig vom Setter)

XML-Konfiguration von Animationen

View Animation wird typischerweise in XML-Dateien in res/anim/ mit einem Wurzelelement (AnimationSet) oder einem der vier Typen definiert. AnimationSet ermöglicht das Kombinieren von Animationen mit gemeinsamen Parametern wie startOffset, duration, interpolator.

xml
<!-- res/anim/bounce.xml -->
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/bounce_interpolator">

    <translate
        android:fromYDelta="0%"
        android:toYDelta="-100%"
        android:duration="600" />

    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0.3"
        android:duration="600" />
</set>

Die XML-Datei wird über AnimationUtils.loadAnimation() geladen. Der Interpolator definiert, wie sich der Parameter im Laufe der Zeit ändert: accelerate, decelerate, bounce, overshoot. Ein benutzerdefinierter Interpolator wird über die XML-Ressource @anim/interpolator_name erstellt.

Gemeinsame Attribute

Alle Tween-Animationen unterstützen die Attribute: duration (ms), startOffset (Verzögerung vor Start), repeatCount, repeatMode (restart/reverse), fillEnabled, fillBefore, fillAfter, interpolator. Das Attribut fillAfter bestimmt, ob das View nach Abschluss im endgültigen Animationszustand verbleibt.

Kotlin-Codebeispiele

Obwohl Animationen normalerweise in XML definiert werden, können sie auch programmatisch mit Kotlin erstellt werden. Der programmatische Ansatz ist nützlich für dynamische Parameter: der Transparenzwert hängt vom Anwendungszustand ab, anstatt statisch definiert zu sein.

kotlin
// Programmatische Erstellung von AlphaAnimation in Kotlin
import android.view.animation.AlphaAnimation
import android.view.animation.Animation
import android.view.View

fun View.fadeOut(duration: Long = 500L, onEnd: () -> Unit = {}) {
    val animation = AlphaAnimation(1.0f, 0.0f).apply {
        this.duration = duration
        fillAfter = true
        setAnimationListener(object : Animation.AnimationListener {
            override fun onAnimationEnd(animation: Animation?) { onEnd() }
            override fun onAnimationStart(animation: Animation?) {}
            override fun onAnimationRepeat(animation: Animation?) {}
        })
    }
    startAnimation(animation)
}

// Laden einer Animation aus XML
val bounceAnim = AnimationUtils.loadAnimation(context, R.anim.bounce)
view.startAnimation(bounceAnim)

// AnimationSet — Kombination von Animationen
val set = AnimationSet(true).apply {
    addAnimation(TranslateAnimation(0f, 200f, 0f, 0f).apply { duration = 400 })
    addAnimation(RotateAnimation(0f, 360f).apply {
        duration = 400
        pivotX = view.width / 2f
        pivotY = view.height / 2f
    })
}
view.startAnimation(set)

Die Methode startAnimation() fügt die Animation zur Darstellungswarteschlange des Views hinzu. Zum Abbrechen verwenden Sie clearAnimation(). Wichtig: fillAfter=true ändert LayoutParams nicht — wenn startAnimation erneut aufgerufen wird, beginnt die Animation vom ursprünglichen Zustand des Views, nicht vom zuletzt dargestellten.

Wann View Animation verwenden?

View Animation hat im Jahr 2026 einen engen Anwendungsbereich: Unterstützung für Android 4.x (API 16-19), wo Property Animation instabil arbeiten kann; einfache Ein-/Ausblendeffekte, die keine LayoutParams-Änderungen erfordern; Animationen, bei denen Klickabweichung nicht kritisch ist (z. B. Hintergrundelemente). Für alle anderen Fälle empfiehlt Google die Umstellung auf ObjectAnimator oder AnimatorSet.

Laut Android Developers ist Property Animation 15-20% speichereffizienter, da es keine zwischengeschalteten Canvas-Frames erstellt. Der Wechsel von View Animation zu Property Animation beseitigt auch das Problem der Klickabweichung: Das View empfängt nach der Animation Berührungen an seiner neuen Position.

Häufig gestellte Fragen

Wie unterscheidet sich View Animation von Property Animation?

View Animation ändert nur die Darstellung des Views — nach der Animation bleibt das View für Berührungsereignisse an seiner ursprünglichen Position. Property Animation ändert die tatsächlichen Eigenschaften des Objekts, aktualisiert LayoutParams und behandelt Klicks korrekt an der neuen Position.

Warum gilt View Animation als veraltet?

Google hat View Animation ab Android 3.0 (API 11) als veraltet erklärt. Der Grund ist die Klickabweichung (click mismatch) und die Unfähigkeit, beliebige Objekteigenschaften zu animieren. Property Animation löst diese Probleme und wird für alle neuen Projekte empfohlen.

Kann View Animation für Schaltflächenanimationen verwendet werden?

Es kann verwendet werden, wird aber nicht empfohlen. Eine Schaltfläche wird nach TranslateAnimation an einer neuen Position angezeigt, aber Klicks werden an der ursprünglichen Position registriert. Verwenden Sie für Schaltflächen Property Animation oder ein Composable mit AnimatedVisibility in Jetpack Compose.

Wie kann View Animation programmatisch abgebrochen werden?

Rufen Sie view.clearAnimation() auf. Wenn die Animation mit fillAfter=true gestartet wurde, bleibt das View in seinem endgültigen Zustand. Um die Rückkehr in den ursprünglichen Zustand zu erzwingen, rufen Sie clearAnimation() und invalidate() auf.

Zusammenfassung

  • View Animation — ein veraltetes Tween-Animationssystem in Android mit vier Typen: Alpha, Translate, Scale, Rotate
  • XML-Markierung in res/anim/ mit , , , -Elementen und Wurzel
  • AnimationSet kombiniert Animationen mit gemeinsamem startOffset, duration, interpolator
  • Klickabweichung — das View bleibt nach der Animation für Berührungsereignisse an der ursprünglichen Position
  • Property Animation — moderner Ersatz durch ObjectAnimator, AnimatorSet, arbeitet mit echten Eigenschaften
  • fillAfter belässt das View im Endzustand, ändert aber LayoutParams nicht
  • Migration zu Property Animation beseitigt die Klickabweichung und verbessert die Leistung um 15-20%

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch