美文网首页android666APP开发经验总结
android activity动画(淡入淡出)

android activity动画(淡入淡出)

作者: android_haihong | 来源:发表于2019-02-21 22:18 被阅读341次

    今天记录下Activity一个淡入淡出的切换效果
    大概效果就是去除了activity的切换动画,感觉很简洁,个人比较喜欢这个效果

    直接上效果:


    video2gif_20190222_175450.gif

    先简单说几个属性
    android:interpolator:主要作用是可以控制动画的变化速率,比如去实现一种非线性运动的动画效果。那么什么叫做非线性运动的动画效果呢?就是说动画改变的速率不是一成不变的,像加速运动以及减速运动都属于非线性运动。
    android:fromAlpha:属性为动画起始时透明度
    android:toAlpha:属性为动画结束时透明度
    android:duration:动画持续时间,单位毫秒

    <1>在res文件夹下建立anim文件夹,建立anim_fade_in.xml和anim_fade_out.xml两个动画资源

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

    <2>在values文件夹下的styles.xml中的resources标签内自定义style样式

    <!--activity 淡入淡出-->
    <style name="AnimActivity" parent="Theme.AppCompat.Light.NoActionBar">
        <item name="android:windowAnimationStyle">@style/anim_fade</item>
        <item name="android:windowNoTitle">true</item>
    </style>
    
     <style name="anim_fade" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/anim_fade_in</item>
        <item name="android:activityOpenExitAnimation">@anim/anim_fade_out</item>
        <item name="android:activityCloseEnterAnimation">@anim/anim_fade_in</item>
        <item name="android:activityCloseExitAnimation">@anim/anim_fade_out</item>
    </style>
    

    <3>最后在AndroidManifest.xml中的application添加android:theme="@style/AnimActivity"就可以了,在application标签中添加则为全局效果,也可以再某个activity添加,则为单独效果

    其实网上也有用overridePendingTransition()方法的,我个人不是很喜欢,这个还得写到BaseActivty中做一个全局效果,个人喜欢吧.
    简单说下:

    overridePendingTransition(int enterAnim,int exitAnim)
    //enterAnim:进入时的动画       exitAnim:退出时的动画
    

    注:这个方法必须放在startActivity和finish之后才能调用

    相关文章

      网友评论

        本文标题:android activity动画(淡入淡出)

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