Elevation — Grundlagen, Schatten und Z-Koordinate in Android

Autor: IT Sectr Veröffentlicht: 2026-02-28 Lesezeit: 9 Min.

Elevation ist ein grundlegendes Konzept von Material Design, das die Höhe eines Elements entlang der z-Achse (senkrecht zum Bildschirm) definiert. Elevation wird in dp gemessen und beeinflusst direkt die Größe und Unschärfe des Schattens, den das Element wirft. Je höher die Elevation, desto näher ist das Element am Benutzer und desto deutlicher ist sein visuelles Gewicht. Laut Material Design 3 (Google, 2026) beträgt die Standard-Elevation für Karten 1 dp, für FloatingActionButton — 6 dp, für Dialoge — 24 dp. Weitere Informationen zur Schattenimplementierung finden Sie im Artikel über Schatten in UI.

Wichtige Punkte

  • Elevation — die Höhe eines Elements relativ zur Bildschirmoberfläche, gemessen in dp (Android).
  • In Android wird Elevation über die gleichnamige View-Eigenschaft oder über translationZ für Animationen gesteuert.
  • OutlineProvider definiert die Form des Elements, entlang der der Elevationschatten gerendert wird.
  • Material Design 3 verwendet 5 grundlegende Elevationsstufen: 0, 1, 3, 6, 8, 12 und 24 dp.
  • Auf iOS gibt es kein direktes Analogon zur Elevation — die Höhe wird über CALayer.shadow mit Parametern simuliert.

Was ist Elevation?

Elevation ist eine in Material Design (Google I/O 2014) eingeführte Metrik, die die Position eines Elements entlang der z-Achse beschreibt. Anders als x und y (die zweidimensionale Ebene des Bildschirms) ist z die Höhe über der Ebene. Elevation wird in dp (dichteunabhängigen Pixeln) ausgedrückt und bestimmt zwei visuelle Effekte: den Schatten, der mit zunehmender Elevation größer und unschärfer wird, und die Zeichenreihenfolge (Elemente mit höherer Elevation werden über Elementen mit niedrigerer Elevation gezeichnet).

Physikalische Metapher: Stellen Sie sich Blätter Papier auf einem Tisch vor. Je höher der Stapel, desto länger der Schatten des obersten Blattes. Elevation in Material Design funktioniert genauso — jedes Element ist ein „digitales Blatt“ in einer bestimmten Höhe. Wenn ein Benutzer mit einem Element interagiert (einen Knopf drückt, eine Karte anhebt), erhöht sich die Elevation vorübergehend — dies nennt man „Interaktionselevation.“

Laut den Material Design Guidelines (Google, 2026) verbessert die richtige Verwendung von Elevation die Scanbarkeit der Benutzeroberfläche um 35%: Benutzer finden interaktive Elemente schneller, weil sie über dem flachen Inhalt „hervorstechen“. Eine übermäßige Anzahl von Elevationsstufen (mehr als 4) verringert diesen Effekt jedoch — wenn alles schwebt, scheint nichts wichtig.

Elevation in Android: Eigenschaften und API

In Android ist Elevation als integrierte View-Eigenschaft seit API 21 (Android 5.0 Lollipop) implementiert. View.elevation legt die Basishöhe in Pixeln (px) fest, und View.translationZ bietet einen zusätzlichen Versatz für Animationen (z. B. beim Drücken). Die gesamte visuelle Höhe = elevation + translationZ. Beide Eigenschaften unterstützen Animation über ViewPropertyAnimator oder ObjectAnimator.

xml
<!-- XML: elevation und translationZ -->
<Button
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:elevation="4dp"
    android:translationZ="2dp"
    android:stateListAnimator="@anim/button_elevation"
    android:text="Button mit Elevation" />

StateListAnimator — eine XML-Ressource zum Animieren von Elevation und translationZ basierend auf dem View-Zustand (gedrückt, fokussiert, aktiviert). Wenn zum Beispiel ein Knopf gedrückt wird, kann die Elevation von 2 dp auf 8 dp ansteigen, was einen Anhebeeffekt erzeugt. StateListAnimator unterstützt Animation über ObjectAnimator für beliebige View-Eigenschaften.

kotlin
// Kotlin: programmatische Elevation-Einrichtung
import android.animation.ObjectAnimator
import android.view.View

val myButton: View = findViewById(R.id.myButton)
myButton.elevation = 4f  // Basishöhe in px

// Elevationsanimation beim Drücken
val animator = ObjectAnimator.ofFloat(
    myButton,
    "translationZ",
    0f,
    8f
).apply {
    duration = 150
    repeatMode = ValueAnimator.REVERSE
    repeatCount = 1
}

OutlineProvider — eine Schlüsselkomponente für das korrekte Rendern des Elevationschattens. Standardmäßig verwendet Android ViewOutlineProvider.BACKGROUND, der eine Kontur basierend auf dem Hintergrund-Drawable erstellt. Für Views mit abgerundeten Ecken (über Shape-Drawable) muss ein benutzerdefinierter OutlineProvider festgelegt werden, sonst wird der Schatten rechteckig. Material-Komponenten (CardView, MaterialButton) verwalten den OutlineProvider automatisch.

Elevationsstufen in Material Design 3

Material Design 3 (Material You) hat das Elevationssystem im Vergleich zu Material Design 2 überarbeitet. Anstelle von 12 festen Stufen (Material 2) bietet M3 5 grundlegende Töne, die jeweils einer bestimmten Elevationsstufe entsprechen. Darüber hinaus führt M3 das Konzept des „farbigen Schattens“ auf Android 12+ ein: Der Schatten kann mit der Akzentfarbe des Designs eingefärbt werden, anstatt schwarz-grau zu sein.

StufeElevationVerwendungSchatten (helles Design)
Stufe 00 dpHintergründe, Surface-ContainerKein Schatten
Stufe 11 dpKarten, ListItem, Menüs0.05 Deckkraft, 2px Unschärfe
Stufe 23 dpSuchleiste, untere Navigation0.08 Deckkraft, 4px Unschärfe
Stufe 36 dpFAB, FloatingActionButton0.11 Deckkraft, 8px Unschärfe
Stufe 48 dpSnackbar, Bottom Sheet0.12 Deckkraft, 12px Unschärfe
Stufe 512 dpNavigationsleiste, Dialog0.14 Deckkraft, 16px Unschärfe
Stufe 624 dpModaler Dialog, Popup-Menü0.15 Deckkraft, 24px Unschärfe

Interaktionselevation — eine vorübergehende Erhöhung der Elevation während der Benutzerinteraktion mit einem Element. In Material Design 3 erhalten interaktive Elemente (Knöpfe, Karten) beim Drücken (gedrückter Zustand) oder Fokussieren (fokussierter Zustand) +1–2 dp zu ihrer Basiselevation. Für FloatingActionButton beträgt die Interaktionselevation +6 dp. Die Übergangsanimation zwischen Zuständen sollte 150–200 ms dauern, um eine natürliche taktile Rückmeldung zu gewährleisten.

Elevation in Jetpack Compose

Jetpack Compose unterstützt Elevation über die Komponenten Card und Surface, die einen integrierten Elevationsparameter haben. Anders als das View-System rendert Compose Schatten über seine eigene Rendering-Engine, was ein konsistentes Verhalten auf allen Android-Versionen (API 21+) gewährleistet. Modifier.shadow() ist ein Low-Level-Modifikator zum Hinzufügen von Schatten zu jedem Composable.

kotlin
// Jetpack Compose: Elevation über Surface und Card
import androidx.compose.material3.Card
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.Surface

Card(
    elevation = CardDefaults.cardElevation(
        defaultElevation = 4.dp,
        pressedElevation = 8.dp,
        focusedElevation = 6.dp
    ),
    colors = CardDefaults.cardColors(
        containerColor = MaterialTheme.colorScheme.surface
    )
) {
    Text("Elevationsgesteuerte Karte")
}

// Modifier.shadow für benutzerdefinierte Formen
Surface(
    modifier = Modifier
        .shadow(elevation = 6.dp, shape = RoundedCornerShape(16.dp))
        .clickable { /* Aktion */ },
    shape = RoundedCornerShape(16.dp),
    color = MaterialTheme.colorScheme.surface
) { Text("Oberfläche mit Schatten") }

Elevationsanimation in Compose wird über animateFloatAsState oder Animatable implementiert. Wenn sich die Elevation ändert, animiert Compose automatisch den Schatten. Für interaktive Elemente verwenden Sie M3 InteractionSource in Kombination mit animateElevation, damit die Elevation auf Drücken, Fokus und Ziehen reagiert. Material 3 in Compose 1.2+ unterstützt farbige Schatten — einen Schatten, der mit der primary Container-Farbe des Designs eingefärbt ist.

Elevation auf iOS: Höhensimulation

Auf iOS gibt es kein eingebautes Analogon zur Elevation aus Material Design. Apples Human Interface Guidelines verwenden keine z-Koordinaten für die Schattenverwaltung — stattdessen konfigurieren Entwickler Schatten manuell über CALayer.shadow*. Das Konzept der visuellen Hierarchie durch Schatten und Tiefe existiert jedoch auch auf iOS: modale Präsentationen, UIAlertController, UIPopoverPresentationController — alle verwenden Schatten, um sich vom Hintergrund abzuheben.

Zur Simulation von Elevation auf iOS verwenden Entwickler eine Kombination aus shadowOpacity + shadowRadius + shadowOffset. Je höher die erforderliche „Höhe“, desto größer der Unschärferadius und der Schattenversatz. In SwiftUI werden Schatten über den .shadow()-Modifikator mit Parametern festgelegt. Für ein Material-ähnliches Verhalten auf iOS gibt es Bibliotheken wie Material Components for iOS (MDC) von Google.

swift
// iOS: Elevationssimulation über CALayer
import UIKit

extension UIView {
    func applyElevation(level: Int) {
        let elevationMap: [Int: (CGFloat, CGFloat, CGFloat)] = [
            1: (0.05, 1, 2),
            2: (0.08, 2, 4),
            3: (0.11, 4, 8),
            4: (0.12, 6, 12),
            5: (0.14, 8, 16),
            6: (0.15, 12, 24)
        ]
        let (opacity, offset, radius) = elevationMap[level] ?? (0.08, 2, 4)
        layer.shadowColor = UIColor.black.cgColor
        layer.shadowOpacity = Float(opacity)
        layer.shadowOffset = CGSize(width: 0, height: offset)
        layer.shadowRadius = radius
        layer.shouldRasterize = true
        layer.rasterizationScale = UIScreen.main.scale
    }
}

// Verwendung
cardView.applyElevation(level: 3)  // entspricht 6 dp

Material Components for iOS (MDC-iOS) — eine Google-Bibliothek, die Material Design Elevation auf iOS portiert. MDC-iOS bietet die Klasse MDCShadowElevation mit vordefinierten Werten, MDCShadowLayer zum Rendern von Schatten und MDCCard für Material-Karten mit korrekter Elevation. MDC-iOS unterstützt Elevationsanimation beim Drücken über zustandsbehaftete Schatteneigenschaften.

Häufig gestellte Fragen

Was ist der Unterschied zwischen Elevation und translationZ in Android?

Elevation — die Basishöhe eines Elements in der z-Ebene (in XML oder Code festgelegt). translationZ — ein dynamischer Versatz für Animationen (z. B. beim Drücken). Visuelle Höhe = elevation + translationZ. elevation wird über ViewPropertyAnimator animiert, translationZ über ObjectAnimator. Verwenden Sie translationZ für vorübergehende Höhenänderungen, elevation für dauerhafte.

Warum hat Material Design 3 das Elevationssystem geändert?

Material Design 3 hat das Elevationssystem von 12 auf 7 Stufen vereinfacht, um die kognitive Belastung für Designer und Entwickler zu verringern. Anstelle genauer Werte (2 dp, 4 dp, 8 dp) verwendet M3 Töne (Stufe 0–6) mit vordefinierten Schattenparametern. Auf Android 12+ wurde die Unterstützung für farbige Schatten hinzugefügt, die sich an das Design der App anpassen.

Wie wirkt sich Elevation auf die Android-Leistung aus?

Elevation selbst hat keine Auswirkung auf die Leistung, da Schatten von der Hardware (GPU) gerendert werden. Häufige Änderungen der Elevation (jeder Frame während einer Animation) können jedoch ein Neuzeichnen der View und angrenzender Bereiche verursachen. Verwenden Sie für Animationen translationZ anstelle von Elevation, da translationZ für häufige Änderungen optimiert ist. Aktivieren Sie für komplexe Bildschirme mit 20+ Elementen mit Elevation view.setLayerType(View.LAYER_TYPE_HARDWARE, null).

Wie erstelle ich einen Elevationschatten ohne Anheben des Elements?

In Android hebt Elevation das Element immer über den Hintergrund an und ändert die Zeichenreihenfolge (z-order). Wenn Sie nur den Schatten ohne Änderung der z-Reihenfolge benötigen, verwenden Sie cardUseCompatPadding in CardView oder benutzerdefiniertes Schattenrendering über Paint.setShadowLayer() in onDraw(). Verwenden Sie in Jetpack Compose Modifier.graphicsLayer { shadowElevation = 4f }.

Welche Elevation haben die Standard-Android-Komponenten?

Material Design-Komponenten haben feste Elevationswerte: FloatingActionButton — 6 dp (12 dp beim Drücken), CardView — 1–8 dp (konfigurierbar), BottomNavigationView — 8 dp, Toolbar — 4 dp, Snackbar — 6 dp, Dialog — 24 dp. MaterialButton aus der Material Components Library hat eine Elevation von 2 dp, die beim Drücken auf 8 dp ansteigt.

Zusammenfassung

  • Elevation — z-Höhe eines Elements in Material Design, gemessen in dp, die Schatten und Zeichenreihenfolge bestimmt.
  • In Android wird Elevation über die View-Eigenschaft ab API 21 festgelegt, und translationZ wird für Animationen verwendet.
  • OutlineProvider — erforderlich für korrekte Schatten bei Elementen mit abgerundeten Ecken.
  • Material Design 3 verwendet 7 Elevationsstufen: Stufe 0 (0 dp) — Stufe 6 (24 dp).
  • Jetpack Compose verwaltet Elevation über CardDefaults.cardElevation() und Modifier.shadow().
  • Auf iOS wird Elevation über CALayer.shadow mit vordefinierten Deckkraft-/Versatz-/Radius-Parametern simuliert.
  • Interaktionselevation (+1–6 dp) erzeugt taktiles Feedback beim Drücken interaktiver Elemente.

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