overridePendingTransition动画过程透析桌面的问题

通过Activity间的转场动画overridePendingTransition可以实现Activity之间的跳转动画,这里分析的是alpha动画引起的透析桌面的问题。

在闪屏页展示完毕后,跳转到主页,这之间通过转场动画实现一个第一个页面渐渐消失,第二个页面慢慢展现的动画效果。

overridePendingTransition(R.anim.activity_fade_in,R.anim.activity_fade_out);
activity_fade_in.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <alpha
        android:duration="1000"
        android:fromAlpha="0.0"
        android:toAlpha="1.0" />

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

    <alpha
        android:duration="1000"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />

</set>

首先想到将fromAlpha变大

依然会透析,除非fromAlpha也变成1.0,呵呵,肯定不行

其次想到把第二个页面的主题设置背景色为白色,并且设置不透明

一如既往,这也验证了动画是对第一个页面进行的,第二个页面设置其实并没有任何作用。

<item name="android:windowBackground">@color/white</item>
<item name="android:windowIsTranslucent">false</item>

所以结论很直接了,对第一个页面设置不透明属性,并且设置背景色为白色

结果验证了我的推论,跳转动画执行的过程中不再透析到桌面。

1.从中也可以得到一些结论,overridePendingTransition执行的过程中,是对Window层级执行的动画,如果设置了android:windowIsTranslucent为true,将会透析到桌面。
2.动画是针对第一个Activity执行的,而不是第二个。

    原文作者:骑着海去看蜗牛
    原文地址: https://www.jianshu.com/p/6829081540ad
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞