2016-06-06 8 views
1

Ich möchte das Dialogfeld mit der angegebenen Animation anzeigen, wenn ich auf eine Schaltfläche klicke, dieses Dialogfeld wird von links nach rechts verschoben und füllt den Bildschirm nicht. Wenn ich also auf den Bereich dieses Dialogfelds klicke, es wird mit einer Animation, welche Richtung entgegengesetzt ist, von rechts nach links entlassen. Ist diese Aktion sinnvoll? Wenn ich ähnliche Aktionen durchführen möchte, was soll ich tun? Jede Hilfe wird sehr geschätzt.Display Ein DialogFragment mit Animation

Antwort

2

Definieren Sie zunächst die richtige Animation wie folgt und legen Sie sie im Anim-Ordner ab.

Slide_in_from_left:

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:zAdjustment="top"> 
    <translate 
     android:duration="400" 
     android:fromXDelta="-100%p" 
     android:toXDelta="0%p" /> 

    <alpha 
     android:duration="400" 
     android:fromAlpha="0.8" 
     android:toAlpha="1.0" /> 
</set> 

Slide_out_to_right

<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:zAdjustment="bottom"> 
    <translate 
     android:duration="400" 
     android:fromXDelta="0%p" 
     android:toXDelta="100%p" /> 

    <alpha 
     android:duration="400" 
     android:fromAlpha="1.0" 
     android:toAlpha="0.2" /> 
</set> 

dann benutzerdefinierten Stil definieren, die Eingabe definiert/Exit Animation:

in Ihrem style.xml:

<!-- Animations for Dialogs--> 
<style name="DialogAnimation"> 
    <item name="android:windowEnterAnimation">@anim/slide_in_from_left</item> 
    <item name="android:windowExitAnimation">@anim/slide_out_to_right</item> 
</style> 

Und in Ihrem DialogFragment Überschreibung onActivityCreated und ordnen Animation:

@Override 
    public void onActivityCreated(Bundle arg0) { 
     super.onActivityCreated(arg0); 

     getDialog().getWindow().getAttributes().windowAnimations = R.style.DialogAnimation; 
    } 
+1

es ist sehr nützlich, ich danke Ihnen sehr – wislie

+0

@wislie Wenn Antworten nützlich waren, können Sie Flagge sie als Antwort. – Amir

Verwandte Themen