我正在尝试使用自定义过渡动画启动活动。到目前为止我发现的唯一方法是在上一个活动中不使用onPendingTransition())是在活动上使用自定义主题并定义activityOpenEnterAnimation,taskOpenEnterAnimation,windowEnterAnimation或windowAnimationStyle来设置动画。但是,这些属性都不适用于我。一些实验产生了以下结果 -
如果我将windowAnimationStyle属性设置为某个自定义样式,该样式定义了activityOpenEnterAnimation,taskOpenEnterAnimation,windowEnterAnimation或windowAnimationStyle的值,我可以摆脱活动开始时发生的默认过渡动画。它不会使用指定的实际值显示过渡动画,但至少不会显示默认动画。
根据参考文档here,
我应该能够使用activityOpenEnterAnimation在活动开始时定义动画。但到目前为止没有成功。
有什么想法吗?
答案 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