【问题标题】:Android: Activities animations not workingAndroid:活动动画不起作用
【发布时间】:2015-02-20 07:01:57
【问题描述】:

当我在应用中的活动之间切换时,我无法理解为什么我的自定义动画没有覆盖系统动画。

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" />

淡出.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。感谢您的帮助

【问题讨论】:

标签: android android-activity android-animation


【解决方案1】:

这通常发生在 Android 4.4.2 上。试试这个

http://blog.csdn.net/xuewater/article/details/36398803

【讨论】:

  • 是中文的
【解决方案2】:

据我所知,如果您想使用主题中定义的 trasitions,您必须使用

更改活动

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

【讨论】:

  • 我不想在开始 activiteis 之前做这种重复的工作,这就是为什么我使用了样式,所以所有活动都获得相同的样式,而无需编写 java 代码。
  • 即使您使用样式,您也必须每次都编写这段代码,这仍然比使用特定动画指定 OverridePendingTransitions 的工作量少,因为它从您的 XML 文件中获取动画
  • 这仅适用于活动 Transitions(在 Android 5.0 中引入),不适用于活动 Animations
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-25
  • 1970-01-01
  • 1970-01-01
  • 2022-08-04
  • 2022-12-20
  • 1970-01-01
相关资源
最近更新 更多