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

  • 相关阅读:
    HDU4666+POJ2926【最远曼哈顿距离】
    IOS学习之路九(配置restful webservice 框架restkit)
    vb.net 模拟UDP通信
    微信公众平台开发之万能表单
    学习Qt,Getting started
    spring的xml配置文件出现故障
    POJ 1731 Orders(STL运用)
    hiho1080 更为复杂的买卖房屋姿势
    Linux学习笔记(三):系统执行级与执行级的切换
    数据结构之哈希表
  • 原文地址:https://www.cnblogs.com/wuyou/p/3669651.html
Copyright © 2011-2022 走看看