美文网首页自定义控件
Andorid中为Dialog添加动画

Andorid中为Dialog添加动画

作者: 岁月神偷_4676 | 来源:发表于2020-09-01 09:39 被阅读0次

    Android中的动画想必大家都用过,但是给Dialog显示动画,可能很多人没这个需求,因此也没仔细研究过,下面就以如何给Dialog添加一个右进右出的动画为例给大家展示一二。其实很简单,核心代码就一句:

    window.setWindowAnimations(R.style.right_in_right_out_anim);
    

    那么这句代码在什么位置添加呢?其实是在Dialog的onCreate中添加,具体如下:

    Public class MyDialog extends Dialog {
      @Override
      protected void onCreate(Bundle savedInstanceState) {
        Window window = this.getWindow();
            if (window != null) {
              //set animation
                window.setWindowAnimations(R.style.right_in_right_out_anim);
            }
        }
      }
    

    下面再来看一下右进右出动画的实现:
    在style.xml中添加一项

    <style name="right_in_right_out_anim" parent="android:Animation">
            <!--//进入时的动画-->
            <item name="android:windowEnterAnimation">@anim/right_in_anim</item>
            <!--//退出时的动画-->
            <item name="android:windowExitAnimation">@anim/right_out_anim</item>
        </style>
    

    在res/anim文件夹中添加两个动画文件

    right_in_anim.xml Dialog显示动画

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"
            android:duration="300"
            android:fromXDelta="100%"
            android:toXDelta="0" />
    </set>
    

    right_out_anim.xml Dialog消失动画

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
            android:interpolator="@android:anim/accelerate_decelerate_interpolator"
            android:duration="300"
            android:fromXDelta="0"
            android:toXDelta="100%" />
    </set>
    

    到此为Dialog添加右进右出的动画效果就完成了。

    相关文章

      网友评论

        本文标题:Andorid中为Dialog添加动画

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