刚从csdn转战51,这是在51写的第一篇博客

那么我们来谈谈这样一个问题。当你的项目需要用的欢迎界面有时候会出现短暂的黑屏或白屏,这样用户体验就不好了,所以今天教教大家如何处理这种问题。

其实,黑屏或者白屏是因为程序还没有加载布局就已经显示window窗口背景,而黑屏或者白屏就是window窗口背景。那么如何处理呢?看下面...

public class LoadingActivity extends AppCompatActivity {  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
  
        //还没有加载布局是睡眠1秒,确保黑屏或白屏效果明显 
        try {  
            Thread.sleep(1000);  
        } catch (InterruptedException e) {  
            e.printStackTrace();  
        }  
  
        setContentView(R.layout.activity_loading);  
  
        //欢迎页面停留2秒并跳转MainActivity 
        new Thread(){  
            @Override  
            public void run(){  
                try {  
                    Thread.sleep(2000);  
                } catch (InterruptedException e) {  
                    e.printStackTrace();  
                }  
                startActivity(new Intent(LoadingActivity.this,MainActivity.class));  
                finish();  
            }  
        }.start();  
    }  
}

以上的代码都是在LoadingActivity里写的下面才是重点

<?xml version="1.0" encoding="utf-8"?>  
<manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    package="com.lg.emptydemo">  
  
    <application  
        android:allowBackup="true"  
        android:icon="@mipmap/ic_launcher"  
        android:label="@string/app_name"  
        android:supportsRtl="true"  
        android:theme="@style/AppTheme">  
        <activity android:name=".LoadingActivity"  
            android:theme="@style/FullTheme">  
            <intent-filter>  
                <action android:name="android.intent.action.MAIN" />  
                <category android:name="android.intent.category.LAUNCHER" />  
            </intent-filter>  
        </activity>  
        <activity android:name=".MainActivity"  
            android:theme="@style/AppTheme">  
        </activity>  
    </application>  
  
</manifest>

在AndroidManifest.xml中设置LoadingActivity的风格

<style name="FullTheme" parent="AppTheme">  
        <item name="windowActionBar">false</item>  
        <item name="android:windowBackground">@drawable/img_frame_background</item>  
        <item name="windowNoTitle">true</item>  
        <item name="android:windowFullscreen">true</item>  
        <item name="android:windowContentOverlay">@null</item>  
</style>

android:windowBackground属性设置窗口背景,把它设置成和欢迎界面一样的就大功告成了

源码地址:http://down.51cto.com/data/2221953