• Android 启动白屏或者黑屏闪现解决


    1、设置Style


    //1、设置背景图Theme
    <style name="Theme.AppStartLoad" parent="android:Theme">  
      <item name="android:windowBackground">@drawable/ipod_bg</item>  
      <item name="android:windowNoTitle">true</item>  
    </style>
    
    //2、设置透明Theme
    
    <style name="Theme.AppStartLoadTranslucent" parent="android:Theme">  
      <item name="android:windowIsTranslucent">true</item> 
      <item name="android:windowNoTitle">true</item>  
    </style>
    
    

    上面我定义了两种Theme,第一种Theme就是设置一张背景图。当程序启动时,首先显示这张背景图,避免出现黑屏。第二种Theme是把样式设置为透明,程序启动后不会黑屏而是整个透明了,等到界面初始化完才一次性显示出来。下面说说两种方式的优缺点:

    • Theme1 程序启动快,界面先显示背景图,然后再刷新其他界面控件。给人刷新不同步感觉。
    • Theme2 给人程序启动慢感觉,界面一次性刷出来,刷新同步。

    2、修改AndroidManifest.xml

    为了使上面Theme生效,我们需要设置一些Activity的Theme

    <application
      android:allowBackup="true"
      android:icon="@drawable/ipod_icon"
      android:label="@string/app_name"
      android:launchMode="singleTask">
    
    <!-- iPod主界面 -->
    <activity
      android:name="com.apical.apicalipod.IPodMainActivity"
      <!-- 使用上面定义的样式 mythou-->
      android:theme="@style/Theme.AppStartLoad"
      android:label="@string/app_name" >
      <intent-filter>
      <action android:name="android.intent.action.MAIN" />
      <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    
    //......
    
    </application>
  • 相关阅读:
    LibreOJ2095
    Codeforces
    LibreOJ2241
    LibreOJ2044
    LibreOJ2043
    LibreOJ2045
    LibreOJ2042
    LibreOJ2097
    洛谷P4175
    POJ2888
  • 原文地址:https://www.cnblogs.com/netcorner/p/4883069.html
Copyright © 2020-2023  润新知