学如逆水行舟不进则退 每天都是一个小点的进步,总会上黄金的.
只给出解决办法,原理啥的青铜时候先不用在意,问题都解决不了 哪来的时间看理论.
解决办法:
1.新建一个style 参考如下:
<style name="launchTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:screenOrientation">portrait</item>
</style>
2.清单文件启动页Activity 配置 android:theme 项 例如:android:theme="@style/launchTheme"
3.运行 试试 白屏/黑屏 已消失.
为什么呢?
设想,onCreate---setContentView这个并不是发生在,窗体绘制的第一步,
系统会在执行这个步骤之前,先绘制窗体,这时候布局资源还没加载,于是 就使用默认背景色。
<style name="ThemeSplash" parent="Theme.AppCompat.Light">
这种亮色系,造成白色闪屏
<style name="ThemeSplash" parent="ThemeOverlay.AppCompat.Dark">
这种暗色系主题,造成了黑色闪屏
结尾:
此方法和王者荣耀等类似,
点击之后有一定时间的延迟(因为设置样式时候 设置为透明了)才进入主界面,达到消除白屏的效果
如果你觉得这不满足你的需求,请参考的我的另一消除白屏的解决方案.