2016-06-06 2 views
1

Я хочу отобразить диалоговое окно с указанной анимацией, когда я нажимаю кнопку, этот диалогический фрагмент слайд слева направо и не заполняет экран, поэтому, когда я нажимаю область из этого диалогового фрагмента, он отклоняется с анимацией, направление которой противоположно справа налево. Является ли это действие разумным? Если я хочу выполнить аналогичные действия, что мне делать? Буду признателен за любую оказанную помощь.display A DialogFragment with Animation

ответ

2

Сначала определите правильную анимацию, как показано ниже, и поместите их в папку с анимацией.

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> 

затем определить пользовательский стиль, который определяет Enter/Exit Animation:

в вашем 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> 

И в вашем DialogFragment переназначения onActivityCreated и назначить анимации:

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

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

это очень полезно, спасибо большое – wislie

+0

@wislie Если ответы были полезны вы можете отметить их в качестве ответа. – Amir