App启动时会有个黑屏或者白屏停顿下(版本不同颜色不同),体验效果不佳,今天就是对黑白屏优化。
看源码发现黑白屏的导致是application的主题在继承系统父类主题时,系统主题默认设置了颜色,即windbackground属性赋值了,
三种解决方案
<!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <!--方案1 京东 利用预加载 设置广告图片 设置application 主题设置,其他activity主题区分设置不设置(不去掉这设置,会导致过渡渲染)--> <!--<item name="android:windowBackground">@mipmap/t</item> //黑白屏优化 ,增加GPU渲染--> <!--方案2 设置不预加载每个activity不设置背景颜色默认为黑色 不能复用背景颜色增加GPU渲染 --> <!--<item name="android:windowBackground">@android:color/transparent</item> //优化GPU过度渲染问题--> <!--<item name="android:windowDisablePreview">true</item> //设置不预览 优化黑白屏问题--> <!--方案3 直接设置背景颜色透明 复用背景颜色减少GPU渲染 解决黑白屏问题 推荐-->
如果8.0版本activity在manifest设置 android:screenOrientation="portrait",会导致奔溃
<!--<item name="android:windowBackground">@android:color/transparent</item> //优化GPU过度渲染问题 --> <!--<item name="android:windowIsTranslucent">true</item> //黑白屏优化--> </style>