app在启动时和activity跳转的时候时常会出现黑屏闪现的问题,分析activity的生命周期onCreate()->onStart()->onResume()后activity的UI才显示出来,所以这3步如果处理时间相对过久就会出现黑屏一闪而过的现象,尽量减少这3步的处理时间不能根本解决问题,我们可以设置style使不会出现黑屏问题,比如可以设置背景图style:
<style name="CustomStyle" parent="android:Theme">
<item name="android:windowBackground">@drawable/ipod_bg</item>
<item name="android:windowNoTitle">true</item>
</style>
还可以设置透明style:
<style name="CustomStyle" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowNoTitle">true</item>
</style>
可以在activity是属性中设置上述theme。
另theme和style的区别:style作用于view控件,theme作用于activity,当一个应用使用了theme而其中的activity使用了style时,style的优先级高于theme;
来看一下Launcher里面配置workspace的一个Style:
<style name="WorkspaceIcon">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">match_parent</item>
<item name="android:layout_gravity">center</item>
<item name="android:gravity">center_horizontal</item>
<item name="android:singleLine">true</item>
<item name="android:ellipsize">marquee</item>
<item name="android:textSize">12sp</item>
<item name="android:textColor">#FFF</item>
<item name="android:shadowRadius">2.0</item>
<item name="android:shadowColor">#B0000000</item>
</style>
style可以理解为一组属性的集合,方便不同发view设置。