activity切换交互动画

activity切换的时候,想要有动画,那么。。。
1.想要有效果的activity设置theme

        <activity
            android:name=".MainActivity"
            android:theme="@style/firstActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

2.写style

    <style name="firstActivity">
        <item name="android:windowAnimationStyle">@style/AnimationActivity</item>
    </style>

    <style name="AnimationActivity" parent="@android:style/Animation.Activity">
        <item name="android:activityOpenEnterAnimation">@anim/in_from_right</item>

        <item name="android:activityOpenExitAnimation">@anim/out_from_left</item>

        <item name="android:activityCloseEnterAnimation">@anim/in_from_left</item>

        <item name="android:activityCloseExitAnimation">@anim/out_from_right</item>

    </style>

这4个属性什么意思呢?假设我们有 2 个 Activity,分别是 A1 和 A2:
•当我们从 A1 启动 A2 时,A1 从屏幕上消失,这个动画叫做 android:activityOpenExitAnimation
•当我们从 A1 启动 A2 时,A2 出现在屏幕上,这个动画叫做 android:activityOpenEnterAnimation
•当我们从 A2 退出回到 A1 时,A2 从屏幕上消失,这个叫做 android:activityCloseExitAnimation
•当我们从 A2 退出回到 A1 时,A1 出现在屏幕上,这个叫做 android:activityCloseEnterAnimation

注意,一定要写四个,写的少了,那么会有一半黑屏。因为动画分为两半,只写一半不行。
思考的时候,想好从哪里进,返回的时候相反的方向出就行了。

3.4个xml

in_from_left.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
author:Remex Huang
website:feelyou.info
-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromXDelta="-100%p"
    android:fromYDelta="0"
    android:toXDelta="0"
    android:toYDelta="0" >

</translate>
in_from_right.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
author:Remex Huang
website:feelyou.info
-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromXDelta="100%p"
    android:fromYDelta="0"
    android:toXDelta="0"
    android:toYDelta="0" >

</translate>
out_from_left.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
author:Remex Huang
website:feelyou.info
-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="-100%p"
    android:toYDelta="0" >

</translate>
out_from_right.xml

<?xml version="1.0" encoding="utf-8"?>
<!--
author:Remex Huang
website:feelyou.info
-->
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="500"
    android:fromXDelta="0"
    android:fromYDelta="0"
    android:toXDelta="100%p"
    android:toYDelta="0" >

</translate>

5,OK了。不过首页面应该没有这个效果。

posted @ 2016-03-21 14:17  有点理想的码农  阅读(156)  评论(0编辑  收藏  举报