zoukankan      html  css  js  c++  java
  • Android Activity的切换动画

    Android的Activity切换有两种方法,

    第一种是用代码方式实现:

    Activity A跳转到Activity B,要在startActivity(intent)后面加上overridePendingTransition(R.anim.anim_in, R.anim.anim_out);

    Activity B返回Activity A,要在finish()后面加上overridePendingTransition(R.anim.anim_in, R.anim.anim_out);

    anim_in是进入的Activity的动画,anim_out是退出的Activity的动画。

    第二种方法是使用theme实现:(manifest中)

    <application
                android:label="@string/app_name"
                android:icon="@drawable/ic_launcher"
                android:theme="@style/AppTheme"
                >

    styles.xml

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="AppTheme" mce_bogus="1" parent="@android:style/Theme.Light">
            <item name="android:windowAnimationStyle">@style/default_animation</item>
            <item name="android:windowNoTitle">true</item>
        </style>
    
        <!-- 默认Activity跳转动画 -->
        <style name="default_animation" mce_bogus="1" parent="@android:style/Animation.Activity">
            <item name="android:activityOpenEnterAnimation">@anim/default_anim_in</item>
            <item name="android:activityOpenExitAnimation">@anim/anim_stay</item>
            <item name="android:activityCloseEnterAnimation">@anim/anim_stay</item>
            <item name="android:activityCloseExitAnimation">@anim/default_anim_out</item>
        </style>
    </resources>

    然后就是在res/anim文件夹中定义对应的动画文件default_anim_in,anim_stay, default_anim_out。

    4个item分别代表 

    Activity A跳转到Activity B时Activity B进入动画;

    Activity A跳转到Activity B时Activity A退出动画;

    Activity B返回Activity A时Activity A的进入动画

    Activity B返回Activity A时ActivityB的退出动画

     

    anim_stay.xml

    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android">
        <translate
                android:duration="4000"
                android:fromXDelta="0"
                android:fromYDelta="0"
                android:toXDelta="0"
                android:toYDelta="0"/>
    </set>

    default_anim_in.xml

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

    default_anim_out.xml

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

     文章参考:http://www.open-open.com/lib/view/open1374294856931.html

  • 相关阅读:
    关于消息队列的使用
    关于Redis中交互的过程
    关于Redis的启动过程
    【分布式】Zookeeper与Paxos
    【分布式】Chubby与Paxos
    【分布式】一致性协议
    【分布式】分布式架构
    【知识积累】try-catch-finally+return总结
    【面试】判断一棵二叉树是否为二叉排序树
    【面试】用两个栈实现队列
  • 原文地址:https://www.cnblogs.com/wuyou/p/3669651.html
Copyright © 2011-2022 走看看