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

  • 相关阅读:
    C# 操作配置文件
    C# Excel操作类
    没有找到 mspdb100.dll 的解决办法
    工厂方法模式
    .Net互操作2
    The certificate used to sign “AppName” has either expired or has been revoked. An updated certificate is required to sign and install the application解决
    手机抓包xcode自带命令行工具配合wireshark实现
    expecting SSH2_MSG_KEX_ECDH_REPLY ssh_dispatch_run_fatal问题解决
    使用ssh-keygen设置ssh无密码登录
    远程复制文件到服务器
  • 原文地址:https://www.cnblogs.com/wuyou/p/3669651.html
Copyright © 2011-2022 走看看