美文网首页
Dialog 出现消失动画和位置

Dialog 出现消失动画和位置

作者: 一路摇到顶 | 来源:发表于2016-09-05 23:03 被阅读2285次

    Dialog 的动画

    拿到Dialog的实例,dialog.getWindow().getAttributes().windowAnimations = R.style.PauseDialogAnimation;完成动画的设置。
    style

    <style name="PauseDialogAnimation">    
    <item name="android:windowEnterAnimation">@anim/grow_in</item>    <item name="android:windowExitAnimation">@anim/grow_out</item></style>
    

    缩放+透明度
    @anim/grow_in

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">    <scale        android:duration="@android:integer/config_shortAnimTime"        android:fromXScale="1.0"        
    android:fromYScale="1.0"        
    android:pivotX="50%"        
    android:pivotY="0%"       
    android:toXScale="0.3"        
    android:toYScale="0.3" />    
    <alpha        android:duration="@android:integer/config_shortAnimTime"        android:fromAlpha="1.0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toAlpha="0.0" />
    </set>
    

    @anim/grow_out

    <?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android">    <scale        android:duration="@android:integer/config_shortAnimTime"        android:fromXScale="0.3"        android:fromYScale="0.3"        android:pivotX="50%"        android:pivotY="100%"        android:toXScale="1.0"        android:toYScale="1.0" />    <alpha        android:duration="@android:integer/config_shortAnimTime"        android:fromAlpha="0.0"        android:interpolator="@android:anim/decelerate_interpolator"        android:toAlpha="1.0" /></set>
    

    从上到下
    IN

    <?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromYDelta="-100%p"    android:fromXDelta="0"    android:duration="500"></translate>
    

    OUT

    <?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:toYDelta="100%p" android:toXDelta="0"    android:duration="500"></translate>
    

    从左到右
    in

    <?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:fromXDelta="-100%p"    android:fromYDelta="0"    android:duration="500"></translate>
    

    out

    <?xml version="1.0" encoding="utf-8"?><translate xmlns:android="http://schemas.android.com/apk/res/android"    android:toXDelta="100%p" android:toYDelta="0"    android:duration="500"></translate>
    

    Dialog 的显示位置。

    显示位置有Window window = dialog.getWindow();window.setGravity(Gravity.BOTTOM|Gravity.LEFT);
    下左,,和Framelayout是一样的定位方式。

    dialog有两个回调函数,setOnShowListenersetOnDismissListener,可以通过这两个函数还显示和消失的时候,对dialog中的view,进行动画。更富有动感。

    相关文章

      网友评论

          本文标题:Dialog 出现消失动画和位置

          本文链接:https://www.haomeiwen.com/subject/swxdettx.html