我有一个应用程序,当开发选项不保持活动开启时工作正常。
虽然什么时候关闭,
每次应用程序进入后台并恢复时,都会再次调用onCreate函数。 在那里,我重新创建了最后一个应用程序状态。
现在的问题是,用户操作时发生的简单动画无法启动,动画处理程序也从未调用过。
似乎忽略了动画。这只有在活动被杀死并再次创建时才会发生。
最奇怪的部分是我有4个动画,2个用于一个图像视图(打开,关闭),2个用于另一个图像视图(打开,关闭)。
这一切都发生在开场动画上。
你可以帮帮我吗?动画xmls(用于其中一个开场/结束动画)
redShow动画
<?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>
redHide动画
<?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
答案 0 :(得分:4)
你可以尝试的事情是:
只是一些想法..
当你写下你正在重新创建最后一个应用程序状态时,一个闪烁的红色警告灯熄灭,因为你向我们展示的代码看起来很好。