安卓:活动动画无法正常工作

7

我一直不能理解为什么当我在应用程序的活动之间切换时,我的自定义动画不能覆盖系统动画。

styles.xml

<style name="AppBaseTheme" parent="android:Theme.Holo.Light"></style>

<style name="AppTheme" parent="AppBaseTheme">
    <item name="android:buttonStyle">@style/buttonStyle</item>
    <item name="android:actionBarStyle">@style/ActionBarStyle</item>
    <item name="android:editTextStyle">@style/editTextStyle</item>
    <item name="android:windowAnimationStyle">@style/ActivityAnimationStyle</item>
</style>

<!-- activities animation style start -->
<style name="ActivityAnimationStyle" parent="@android:style/Animation.Activity">
    <item name="android:activityOpenEnterAnimation">@anim/fadein</item>
    <item name="android:activityOpenExitAnimation">@anim/fadeout</item>
    <item name="android:activityCloseEnterAnimation">@anim/fadein</item>
    <item name="android:activityCloseExitAnimation">@anim/fadeout</item>
</style>
<!-- activities animation style end -->

fadein.xml:

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromAlpha="0.0"
    android:interpolator="@android:anim/anticipate_interpolator"
    android:toAlpha="1.0" />

fadeout.xml

<alpha xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_longAnimTime"
    android:fromAlpha="1.0"
    android:interpolator="@android:anim/anticipate_interpolator"
    android:toAlpha="0.0" />

清单文件:

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

所有设置都已完成,我希望看到淡出动画,但根本没有发生。

顺便提一下,我注意到如果我使用android:windowEnterAnimationandroid:windowExitAnimation,并在动画文件中将android:duration的值增加到大约2000,那么我会看到非常缓慢的淡出动画,但我想在所有四种情况下都有动画,并且淡出速度更快。

我正在使用Kitkat 4.4.2。感谢您的帮助。


你有得到解决方案吗?我也遇到了这个问题!我已经创建了两个相关主题,但都没有得到答案... https://stackoverflow.com/questions/52234457/how-to-fade-out-an-activitys-ui-and-fade-in-another-activitys-ui + https://stackoverflow.com/questions/52237312/why-the-xml-specified-transition-isnt-executed-or-why-its-specified-duration - JarsOfJam-Scheduler
2个回答

3

它是用中文的。 - Muhammad Saquib Shaikh

-1
据我所记,如果您想使用主题中定义的转换效果,您必须使用以下代码更改活动:

startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());


我不想在开始活动之前做这个重复的工作,这就是为什么我使用样式,这样所有的活动都可以获得相同的样式,而不必编写Java代码。 - Dev01
即使您使用样式,每次仍需编写此代码片段,但这仍然比指定具体动画的OverridePendingTransitions更少工作,因为它从您的XML文件中获取动画。 - Chris K.
1
这仅适用于__转换__活动(在Android 5.0中引入),而不适用于__动画__活动。 - Alex Semeniuk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接