App启动后出现白屏或者黑屏解决方式

 

Android App启动后出现白屏或者黑屏解决方式

  • 原因

    当要打开一个Activity,而这个Activity所属的应用还没有运行,这时候系统将会为这个Activity所属的应用创建一个进程。但是进程的创建和初始化需要时间,而在这个过程中既无法显示程序又不能停止原处不做任何操作。否则用户以为没有点击到,这时候就有StartWindow的概念。
    
    StartWindow是一个在应用程序创建并初始化成功显示的临时窗口,在程序初始化完成前显示这个窗口,以告知用户系统已经了他要打开这个应用并做出了响应。当程序初始化完成后显示用户UI
    并移除这个窗口。  
    
    显示白屏或者黑屏,是由你的启动Activity或者Application的主题来决定的
    
  • 解决方式之使用图片

    • 为启动页设置主题

       <activity
              android:name=".activity.HnSplashActivity"
              android:screenOrientation="portrait"
              android:theme="@style/SplashTheme">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
      
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>
      
    • 在Style中为WindowBackground设置一张背景图。

          <!--// Base application theme. -->
          <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
              <!-- Customize your theme here. -->
              <item name="colorPrimary">@color/main_color</item>
              <item name="colorPrimaryDark">@color/main_color</item>
              <item name="colorAccent">@color/main_color</item>
          </style>
      
          <!--启动页背景-->
          <style name="SplashTheme" parent="AppTheme">
              <item name="android:windowBackground">@drawable/start</item>
          </style>
      
  • 解决方式之使用颜色

    • 为启动页设置主题

       <activity
              android:name=".activity.HnSplashActivity"
              android:screenOrientation="portrait"
              android:theme="@style/SplashTheme">
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
      
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>
      
    • 在Style中为WindowBackground设置颜色。

           <!-- 防止欢迎页白屏或者黑屏,设置图片 -->
      <style name="SplashTheme" parent="AppBaseTheme"> 
          <item name="android:windowBackground">@drawable/splash</item> 
          <item name="android:windowFullscreen">true</item> 
          <item name="windowNoTitle">true</item>
      </style>
      
      
      
      
      
      <?xml version="1.0" encoding="utf-8"?>
      <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
          <!-- 背景颜色 --> 
          <item android:drawable="@color/green" /> <item> 
          <!-- 图片 --> 
          <bitmap android:gravity="center" android:src="@drawable/icon_welcome" /> </item>
      </layer-list>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值