gpt4 book ai didi

再次调用 onCreate 时 Android 动画不启动

转载 作者:行者123 更新时间:2023-11-29 16:10:54 24 4
gpt4 key购买 nike

我有一个应用程序在开发选项“不保留 Activity ”处于打开状态时运行良好。

虽然什么时候关闭,

每次应用程序进入后台并恢复时,都会再次调用 onCreate 函数。我在那里重新创建了最后一个应用程序状态。

现在的问题是在用户操作时发生的简单动画不会启动并且动画处理程序从未调用过。

似乎动画被忽略了。这只会在 Activity 被终止并再次创建时发生。

最奇怪的是我有 4 个动画,2 个用于一个 ImageView (打开、关闭),2 个用于另一个 ImageView (打开、关闭)。

这只发生在开场动画上。

你能帮帮我吗?

动画 xml(用于打开/关闭动画之一)

红色显示动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="0.1"
android:toAlpha="1.0"
android:duration="800"
/>
<scale android:fromXScale="0.0"
android:toXScale="1.0"
android:fromYScale="0.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="800">

</scale>
</set>

红色隐藏动画

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/linear_interpolator">
<alpha
android:fromAlpha="1.0"
android:toAlpha="0.0"
android:duration="300"
/>
<scale android:fromXScale="1.0"
android:toXScale="0.0"
android:fromYScale="1.0"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="300">

</scale>
</set>

我正在初始化东西的代码(在 onCreate)

red = (ImageView) findViewById(R.id.red);

redHide = AnimationUtils.loadAnimation(this, R.anim.red_hide);
redHide.setFillAfter(true);
redHide.setAnimationListener(this);

redShow = AnimationUtils.loadAnimation(this, R.anim.red_show);
redShow.setFillAfter(true);
redShow.setAnimationListener(this);

我正在调用的处理程序和方法

private void showRed() {
red.startAnimation(redShow); //this is the one that is not happening
}

private void hideRed() {
red.startAnimation(redHide);
}

@Override
public void onAnimationEnd(Animation a) {
}

@Override
public void onAnimationRepeat(Animation a) {
}

@Override
public void onAnimationStart(Animation a) {
}

G

最佳答案

你可以尝试的是:

  • 改为在 onResume() 中初始化动画。
  • 在开始每个动画之前调用 clearAnimation()。
  • 尝试在没有 fillAfter() 的情况下制作动画,也许动画已经以某种方式锁定到它的最新状态。

只是一些想法..

当您写道您正在重新创建上一个应用程序状态时,闪烁的红色警告灯熄灭了,因为您向我们展示的代码看起来很好。

关于再次调用 onCreate 时 Android 动画不启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13495935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com