使用动画启动活动

时间:2010-04-12 22:09:35

标签: android animation android-activity transition

我正在尝试使用自定义过渡动画启动活动。到目前为止我发现的唯一方法是在上一个活动中不使用onPendingTransition())是在活动上使用自定义主题并定义activityOpenEnterAnimation,taskOpenEnterAnimation,windowEnterAnimation或windowAnimationStyle来设置动画。但是,这些属性都不适用于我。一些实验产生了以下结果 -

如果我将windowAnimationStyle属性设置为某个自定义样式,该样式定义了activityOpenEnterAnimation,taskOpenEnterAnimation,windowEnterAnimation或windowAnimationStyle的值,我可以摆脱活动开始时发生的默认过渡动画。它不会使用指定的实际值显示过渡动画,但至少不会显示默认动画。

根据参考文档here

我应该能够使用activityOpenEnterAnimation在活动开始时定义动画。但到目前为止没有成功。

有什么想法吗?

1 个答案:

答案 0 :(得分:83)

我在我当前的项目中使用它,它基本上非常简单。您可以在styles.xml中定义新的动画样式,如下所示:

<!-- just defines top layer "Animation" -->
<style name="Animation" />

<!-- the animations must have been defined in your "anim" folder, of course -->
<style name="Animation.MyAwesomeAnimation" parent="android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/myawesomeanimation_enter</item>
    <item name="android:activityOpenExitAnimation">@anim/hold_long</item>
    <item name="android:activityCloseEnterAnimation">@anim/hold_long</item>
    <item name="android:activityCloseExitAnimation">@anim/myawesomeanimation_exit</item>
</style>

然后在主题(themes.xml)中设置此样式:

<style name="Theme.MyAwesomeTheme" parent="Theme.Default">
    <item name="android:windowAnimationStyle">@style/Animation.MyAwesomeAnimation</item>
</style>

然后,您只需将这些主题设置为AndroidManifest.xml中您喜欢的每个活动:

<activity
    android:name=".MyAwesomeActivity"
    android:theme="@style/Theme.MyAwesomeTheme" />

现在,我希望您通过活动动画获得巨大乐趣! :-D