设置透明主题引起动画失效以及打开其他应用闪现桌面图标的问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/anhenzhufeng/article/details/83860741

近日在适配魅族手机的时候,发现设置Activity的主题的

<item name="android:windowIsTranslucent">true</item>透明状态,或者
<item name="android:windowShowWallpaper">true</item>显示壁纸之后,在该activity界面打开其他应用的界面的时候,会闪现桌面图标,从其他应用界面回来的时候也会闪现桌面图标,而且activity设置的转场动画都失效了。询问一下系统桌面的同事,原来是桌面自己有做动画效果,当设置主题为透明的时候应该是触发了桌面了一些转场动画,具体是怎么触发的尚不清楚。

像这样从我的启动设置界面,会出现桌面的转场动画,闪现桌面,正常情况下应该不会出现桌面图标的。至少在华为的手机上不会出现这种现象。

那怎么办呢,本来我的应用的主界面就是需要跟桌面背景比较贴近,也就是说在桌面背景色的基础上做一下高斯模糊,有人应该了解,做桌面全局搜索的时候,背景是要和桌面目前的壁纸颜色比较贴合的。之前想要activity的背景透明就是想在启动的时候不要显示黑屏或者白屏。我们知道在默认的情况下,系统会当前的主题来为activity真正启动前做一个预览色,接下来才是真正的activity的视图设置的背景颜色或者图片。

我们知道在activity的主题中还有这么一项:

<item name="android:windowBackground">@color/transparent</item>设置背景透明,以前觉得设置这一项就能避免启动时候白屏或者黑屏,结果却还是会存在白屏黑屏现象。不知道是不是各家手机系统有各自的不同处理。

后来发现还有这么一个属性

<item name="android:windowDisablePreview">true</item> ,添加了之后就没有黑屏或者白屏现象了。

也就是这两个组合起来,既能使启动时候背景透明,然后又能去掉黑屏白屏现象,而且这种做法在魅族手机上还不会影响转场动画。

猜你喜欢

转载自blog.csdn.net/anhenzhufeng/article/details/83860741