Fügen Sie benutzerdefinierte Übergänge zu Android-Warndialogen hinzu

Okay, ich gebe es zu: Die Leute bei Google verwöhnen mich. Die zahlreichen Helfer- und Builder-Klassen, die für die Android-Entwicklung bereitgestellt werden, machen routinemäßige UI-Aufgaben so einfach, dass die tieferen Funktionen der gekapselten Klassen leicht übersehen werden können.

Der Warnungsdialog und sein Builder sind ein gutes Beispiel. Während am Standarddialog nichts auszusetzen ist, kann der zugrunde liegende Warnungsdialog vor dem Aufrufen von show auf verschiedene Arten angepasst werden, wenn Sie über die Grundfunktionen des Builders hinausblicken.

Das folgende Beispiel zeigt, wie Sie die zugehörigen On- und Off-Screen-Übergänge eines Warnungsdialogs durch Ihren eigenen XML-Animationssatz ersetzen. Sie können meinen Schritt-für-Schritt-Anweisungen folgen oder das gesamte Projekt herunterladen und direkt in Eclipse importieren.

1. Erstellen Sie in Eclipse ein neues Android-Projekt. Ziel Android 2.2 oder höher.

2. Ändern Sie im Ordner / res / layout die Datei activity_main.xml, um eine Schaltfläche und eine Beschriftung einzuschließen.

activity_main.xml

 "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: paddingBottom = "@ dimen / activity_vertical_margin" android: paddingLeft = "@ dimen / activity_horizontal_margin" android: paddingRight = "@ dimen / activity_horizontal_margin" android: paddingTop = "@ dimen / activity_vertical_margin" tools: context = ".MainActivity" 
android: id = "@ + id / button1"

android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: layout_alignParentBottom = "true"

android: layout_centerHorizontal = "true"

android: layout_marginBottom = "94dp"

android: text = "Dialog anzeigen" />
android: layout_width = "wrap_content"

android: layout_height = "wrap_content"

android: layout_alignParentTop = "true"

android: layout_centerHorizontal = "true"

android: layout_marginTop = "46dp"

android: text = "Animiertes Dialogbeispiel" />

3. Erstellen Sie im Ordner / res ein Verzeichnis mit dem Namen "anim". Wir werden zwei Dateien hinzufügen: slide_in_left.xml und slide_out_right.xml.

slide_in_left.xml

 "1.0" encoding = "utf-8" ?> 

"http://schemas.android.com/apk/res/android"

android: fromXDelta = "100% p" android: toXDelta = "0"

android: dauer = "500" />
 slide_out_right.xml 

"1.0" encoding = "utf-8" ?>

"http://schemas.android.com/apk/res/android"

android: fromXDelta = "0" android: toXDelta = "100% p"

android: dauer = "500" />

4. Öffnen Sie die Datei /res/values/styles.xml und fügen Sie einen neuen Stilknoten mit dem Namen dialog_animation hinzu. Hier ziehen wir einfach die zuvor definierten Animationen in eine einzelne Ressource, die wir auf ein Fenster anwenden können.

styles.xml