无法禁用默认活动动画

时间:2012-09-15 11:04:41

标签: android android-activity android-animation

我一直试图替换默认的活动过渡动画但没有任何成功。

我已经定义了自己的进入和退出动画,并且在启动新活动的回调中我有以下代码:

public void goFetchCallback(View view)
{
    Intent intent = new Intent(this, RecipiesActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    startActivity(intent);
    overridePendingTransition(R.anim.entryanim,R.anim.exitanim);
}

不幸的是,这不起作用,我不知道为什么。

我在带有ICS的摩托罗拉Xoom上运行它。

我还尝试使用自定义样式禁用默认动画,如下所示:

    <style name="AppTheme" parent="@android:style/Theme.Holo">
    <item name="android:windowAnimationStyle">@null</item>      
</style>

并将其分配给Manifest.xml中的应用程序,但再次没有任何成功。

有人可以帮忙吗?

由于

1 个答案:

答案 0 :(得分:0)

问题不在于禁用动画的代码中。问题在于动画本身。事实上,它几乎与Xoom的默认动画相同,因此也是混乱。

为了完整性,我发布了禁用动画以及进入和退出动画的代码。它们实现了从右到左的动画以及一些褪色。

调用活动时:

Intent intent = new Intent(this, RecipiesActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(intent);
overridePendingTransition(R.anim.entryanim,R.anim.exitanim);

参赛作品:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">

    <translate 
        android:fromXDelta="100%"
        android:toXDelta="0%"
        android:duration="1000"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
    <alpha
        android:fromAlpha="0"
        android:toAlpha="1"
        android:interpolator="@android:anim/accelerate_interpolator" 
        android:duration="1000"/>
</set>

和exitanim:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">

    <alpha 
        android:fromAlpha="1"
        android:toAlpha="0"
        android:duration="1000"
        android:interpolator="@android:anim/accelerate_interpolator"/>
</set>