美文网首页
仿微信Activity跳转

仿微信Activity跳转

作者: 丶Mars绝版 | 来源:发表于2018-01-23 17:09 被阅读0次

    首先AppTheme里

    <style name="AppTheme" parent="@android:style/Theme">  
            <!-- 设置没有标题 -->  
            <item name="android:windowNoTitle">true</item>  
            <!-- 设置activity切换动画 -->  
            <item name="android:windowAnimationStyle">@style/activityAnim</item>  
        </style>  
    

    上面的style中<item name="android:windowAnimationStyle">@style/activityAnim</item>是Activity界面切换动画的核心,我们看到又引用了@style/activityAnim。下面是具体代码

    <!-- animation 样式 -->  
        <style name="activityAnimation" parent="@android:style/Animation">  
            <item name="android:activityOpenEnterAnimation">@anim/right_in</item>  
            <item name="android:activityOpenExitAnimation">@anim/left_out</item>  
            <item name="android:activityCloseEnterAnimation">@animleft_in</item>  
            <item name="android:activityCloseExitAnimation">@anim/right_out</item>  
        </style>  
    

    android:activityOpenEnterAnimation:要启动的Activity的入场动画
    android:activityCloseExitAnimation:要结束的Activity的出场动画
    android:activityOpenExitAnimation:当前Activity结束的动画
    android:activityCloseEnterAnimation:栈顶Activity的入场动画。
    right_in.xml文件中定义的动画。从屏幕右侧移动到屏幕中心

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

    right_out.xml. 从品目的中心移动到屏幕的右侧

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

    left_in.xml 从屏幕左侧移动到屏幕中心(注意:在微信中我们看到Actiovity界面无论从左侧退出,还是从左侧进入,都是稍微的移动,而不是移动整个屏幕,所以我在这里定义了移动30%, 如果想移动整个屏幕的距离,可以修改为100%)

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

    left_out.xml 从屏幕中心移动到屏幕左侧(移动距离同left_in)

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

    windowIsTranslucent属性导致Activity动画不生效的问题

     <style name="AppTheme" parent="@android:style/Theme">  
             ...
              <item name="windowIsTranslucente">true</item>
            ...
        </style> 
    

    如果,我们在某个界面需要这个属性,可以为其单独设置,比如,启动页面为了防止黑屏,我们会设置这个属性,此时,我们可以为其单独设置一个theme, 当然这样设置了后,如果需要改变其界面切换动画,我们就可以通过复写overridePendingTransition(int enterAnim, int exitAnim)方法来设置。

    相关文章

      网友评论

          本文标题:仿微信Activity跳转

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