如何在活动过渡时避免淡化为黑色?

时间:2014-12-26 04:56:58

标签: android animation android-activity

我正在创建一个应用程序,几乎所有的动画都会消失。对于一些页面,元素将在屏幕上动态显示/消失,并且所有渐变都非常自然(应用程序的白色背景)。但是,当我在“活动”之间切换时,应用程序会在淡入“下一个活动”之前淡化为黑色。由于所有背景都是相同的颜色,我想知道是否有办法避免这种情况,因此背景始终保持相同的颜色,并且只有其上的元素看起来随着应用状态的变化而消失。

我使用以下代码进行转换:

Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);

有时没有finish(),必要时。我对此进行了简要介绍,其他人似乎遇到的问题是持久的黑屏与NextActivity计算密集的onCreate()相关联。对我来说情况并非如此。 onCreate()方法在计算方面做的很少,只是定义了一些监听器。所有强烈的逻辑都被卸载到线程上。对我来说,这是一个UI问题,我正试图找到一个解决方法。

2 个答案:

答案 0 :(得分:1)

我发现在淡出动画上设置android:zAdjustment="top"会使黑屏之间消失。

请参阅此答案中的示例XML:https://stackoverflow.com/a/9150436/1481500

答案 1 :(得分:0)

我建议其他人正在查看此问题,以查看其他问题中的 Taig 答案。对于想要良好的淡入淡出过渡的人来说,要简单得多的解决方案:

https://stackoverflow.com/a/34024547/8050896

要点是仅在过渡之间设置淡出动画,以避免在两个活动都淡出时看到启动器背景。因此,第二个活动实际上没有动画。

startActivity( ... );
finish();
overridePendingTransition(0, R.anim.screen_splash_fade_out); // only a fade out animation