Android - 启动画面应用程序

时间:2014-06-03 11:04:40

标签: android android-layout android-activity splash

我目前正在开发一个带有闪屏的应用程序,没有操作栏,具有自定义背景等(因此它处于全屏模式)。但是,在启动屏幕出现之前,有一个" flash" (约0.5秒长)带有动作条的白色布局显示。有人可以解释我如何删除这种行为? 感谢

SplashScreen活动看起来像

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    font = new CustomFont(getBaseContext());
    getWindow().requestFeature(Window.FEATURE_ACTION_BAR);

    // Hide an action bar
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO){
        getActionBar().hide();
    }
    else{
        getSupportActionBar().hide();
    }

    setContentView(R.layout.activity_splash_screen);

    //Use custom font
    font.setTypeface((TextView) findViewById(R.id.splashScreenTVTitle));

    new Handler().postDelayed(new Runnable() {

        /*
         * Showing splash screen with a timer.
         */

        @Override
        public void run() {
            // This method will be executed once the timer is over
            // Start your app main activity
            Intent i = new Intent(SplashScreenActivity.this, MainActivity.class);
            i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
            startActivity(i);

            // close this activity
            finish();
            overridePendingTransition(0, 0);
        }
    }, SPLASH_TIME_OUT);
}

的Manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app" >

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".SplashScreenActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main" >
    </activity>
</application>

3 个答案:

答案 0 :(得分:3)

您可以在清单文件中将活动定义为全屏。

<activity
    android:name=".SplashScreenActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

答案 1 :(得分:0)

避免闪屏。

android的一个设计模式是&#34; CONTENT FIRST&#34;。

使用中间加载栏向最终用户提供信息。

答案 2 :(得分:0)

通过定义自定义主题并删除隐藏onCreate方法中操作栏的部分代码来解决。

<style name="SplashScreenTheme" parent="Theme.AppCompat">
    <item name="android:windowBackground">@drawable/background</item>
    <item name="android:windowNoTitle">true</item>
</style>