# Android modale Rich Media

<Aside type="note" title="Wichtig">
Verfügbar ab SDK 6.7.13
</Aside>

Die Android Modal Rich Media-Funktion ermöglicht es Entwicklern, HTML-Inhalte in einem modalen Popup-Fenster innerhalb ihrer Anwendung anzuzeigen. Dieses Popup blockiert keine anderen UI-Elemente und kann leicht durch Wischgesten geschlossen werden. Das modale Fenster bietet zahlreiche Anpassungsoptionen für Erscheinungsbild, Verhalten, Animationen und mehr und sorgt so für eine hochflexible Benutzererfahrung.

## Hauptmerkmale

- **Nicht-blockierende Benutzeroberfläche**: Das modale Fenster blockiert nicht die Interaktion mit anderen UI-Elementen.
- **Anpassbare Wischgesten**: Konfigurieren Sie Wischgesten, um das modale Fenster in verschiedene Richtungen zu schließen.
- **Flexible Positionierung**: Wählen Sie, wo das modale Fenster auf dem Bildschirm erscheint (oben, mittig oder unten).
- **Benutzerdefinierte Animationen**: Steuern Sie, wie das modale Fenster mit verschiedenen Animationstypen erscheint und verschwindet.
- **Schließbar durch Wischen**: Benutzer können wischen, um das modale Fenster aus jeder Richtung zu schließen.
- **Anpassbare Animationsdauer**: Passen Sie die Geschwindigkeit der modalen Animationen an.
- **Umgang mit der Statusleiste**: Option, das modale Fenster unterhalb oder oberhalb der Statusleiste anzuzeigen.
- **Anpassbare Fensterbreite**: Option, die Breite des modalen Fensters auf den gesamten Bildschirm oder auf die Inhaltsgröße einzustellen.

## Verwendung

### Aktivieren von modalen Rich Media

Um die **Modal Rich Media**-Funktion zu aktivieren, müssen Sie sie in der `AndroidManifest.xml`-Datei Ihrer Anwendung konfigurieren, indem Sie den folgenden Metadaten-Eintrag hinzufügen:

```xml
<meta-data
    android:name="com.pushwoosh.rich_media_type"
    android:value="Modal" />
```
## Standardkonfiguration
Das Erscheinungsbild und Verhalten des modalen Fensters kann durch Festlegen einer Standardkonfiguration über den `RichMediaManager` angepasst werden. Diese Konfiguration ermöglicht es Ihnen, festzulegen, wie sich das modale Fenster verhält, wo es erscheint, wie es geschlossen werden kann und welche Art von Animationen verwendet werden.

## Anpassungsoptionen

### Position der modalen Ansicht

Sie können die Position des modalen Fensters auf dem Bildschirm mit `setViewPosition()` festlegen. Die verfügbaren Werte für diesen Parameter sind:

- `TOP`
- `CENTER` (Standard)
- `BOTTOM`

### Arten der Schließanimation

Passen Sie mit `setDismissAnimationType()` an, wie das modale Fenster geschlossen wird. Verfügbare Optionen sind:

- `FADE_OUT` (Standard)
- `SLIDE_UP`
- `SLIDE_DOWN`
- `SLIDE_LEFT`
- `SLIDE_RIGHT`
- `NONE`

### Arten der Präsentationsanimation

Definieren Sie mit `setPresentAnimationType()`, wie das modale Fenster erscheint. Verfügbare Optionen sind:

- `FADE_IN`
- `SLIDE_UP`
- `SLIDE_RIGHT`
- `DROP_DOWN`
- `SLIDE_LEFT`
- `NONE` (Standard)

### Konfiguration der Wischgeste

Das modale Fenster kann mit Wischgesten in verschiedene Richtungen geschlossen werden, indem `setSwipeGesture()` verwendet wird. Verfügbare Wischgesten sind:

- `UP`
- `LEFT`
- `RIGHT`
- `DOWN`
- `NONE` (Standard)

### Animationsdauer

Steuern Sie die Animationsgeschwindigkeit, indem Sie die `animationDuration()` in Millisekunden festlegen. Die Dauer wird als Ganzzahlwert angegeben, der die Zeit in Millisekunden darstellt.

### Breite des modalen Fensters

Die Breite des modalen Fensters kann mit `setWindowWidth()` festgelegt werden, was definiert, ob das modale Fenster die volle Breite des Bildschirms einnimmt oder nur so viel, wie für den Inhalt benötigt wird. Die möglichen Werte sind:

- `FULL_SCREEN` (Standard)
- `WRAP_CONTENT`

### Umgang mit der Statusleiste

Standardmäßig verdeckt das modale Fenster die Statusleiste nicht. Um zu ermöglichen, dass das modale Fenster unter der Statusleiste erscheint, setzen Sie die Eigenschaft `setStatusBarCovered()` auf `true`.


## Konfigurationsbeispiele
Hier sind einige Beispiele, die verschiedene Animationen demonstrieren, einschließlich Wischgesten, Hineingleiten, Ausblenden, unterschiedliche Animationsdauern und variierende Fensterbreiten. Unten finden Sie auch die Konfigurationen, die verwendet wurden, um diese Effekte zu erzielen.

### Beispiel für Wischgeste

<video src="/android-push-notifications-android-modal-rich-media-1.webm" title="Android-Modal mit Wischgeste nach rechts zum Schließen" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setStatusBarCovered(false)
                .setSwipeGesture(ModalRichMediaSwipeGesture.RIGHT)
                .setViewPosition(ModalRichMediaViewPosition.CENTER)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.SLIDE_RIGHT)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.SLIDE_FROM_LEFT)
                .setAnimationDuration(800)
                .setWindowWidth(ModalRichMediaWindowWidth.WRAP_CONTENT));
```
### Beispiel für Drop-down-Animation

<video src="/android-push-notifications-android-modal-rich-media-2.webm" title="Android-Modal, das mit einer Drop-down-Animation erscheint und durch Wischen nach oben geschlossen wird" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setSwipeGesture(ModalRichMediaSwipeGesture.UP)
                .setViewPosition(ModalRichMediaViewPosition.TOP)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.SLIDE_UP)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.DROP_DOWN)
                .setAnimationDuration(1000));

```

### Beispiel für Rich Media am unteren Rand

<video src="/android-push-notifications-android-modal-rich-media-3.webm" title="Android-Modal, das unten angezeigt wird, mit Ausblend-Schließanimation und Hineingleit-Animation von unten" autoplay loop muted playsinline />

```
        RichMediaManager.setDefaultRichMediaConfig(new ModalRichmediaConfig()
                .setSwipeGesture(ModalRichMediaSwipeGesture.DOWN)
                .setViewPosition(ModalRichMediaViewPosition.BOTTOM)
                .setDismissAnimationType(ModalRichMediaDismissAnimationType.FADE_OUT)
                .setPresentAnimationType(ModalRichMediaPresentAnimationType.SLIDE_UP)
                .setAnimationDuration(2000));
```

## Fazit
Die Android Modal Rich Media-Funktion bietet eine einfache und flexible Möglichkeit, HTML-Inhalte in Ihrer App zu präsentieren, ohne die Benutzererfahrung zu beeinträchtigen. Mit ihren umfangreichen Anpassungsoptionen, einschließlich Wischgesten, Animationen, Positionierung und Fensterbreite, können Sie eine nahtlose und ansprechende Interaktion für Ihre Benutzer schaffen.