开机画面-白色

时间:2018-10-11 08:03:39

标签: android

我正在使用启动屏幕:

setContentView(R.layout.activity_home);
new Handler().postDelayed(new Runnable() {
    @Override
    public void run() {
        startActivity(new Intent(getApplicationContext(),MainActivity.class));
    }
}, 3500);

它正在运行,它显示了我的启动屏幕3秒钟半。但是,当我启动该应用程序时,首先显示白色,大约一秒钟,然后显示启动屏幕。由于代码可以正常工作,问题可能出在我使用的手机还是模拟器上?还是我需要在代码中添加一些内容?

3 个答案:

答案 0 :(得分:1)

白屏是由AppTheme引起的。初始化应用后,会在设置任何视图之前显示默认的白屏。

只需在AppTheme中添加以下属性,即可使白屏消失。

只需添加

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="android:windowBackground"><place here any drawable or color></item>
</style>

让我知道它是否对您有帮助。谢谢!!!

答案 1 :(得分:0)

不,这不是您的代码问题。我的应用程序也会发生这种情况。似乎android加载应用程序本身时出现白屏。如果您只是在开始时加载很多东西,那么加载时间会更长,因此白屏会更大。

答案 2 :(得分:0)

对于我的启动画面,我正在使用两个活动,您还必须在清单文件中注册这些活动:

<activity
        android:name=".ActivityMain"
        android:configChanges="orientation|screenSize"
        android:label="@string/app_name"
        android:parentActivityName=".SplashActivity"
        android:windowSoftInputMode="stateAlwaysHidden">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"/>
            <category android:name="android.intent.category.DEFAULT"/>
            <category android:name="android.intent.category.BROWSABLE"/>
        </intent-filter>
    </activity>
    <activity android:name=".SplashActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>

在我的“飞溅活动”中,我的主要活动是按照以下意图进行的:

public class SplashActivity extends AppCompatActivity {

    private final Runnable task = () -> {
        Intent intent = new Intent(this, ActivityMain.class);
        startActivity(intent);
        finish();
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);

        final AnimatedVectorDrawableCompat animatedVectorDrawableCompat =
                AnimatedVectorDrawableCompat.create(getApplicationContext(),
                        R.drawable.animatedvector);

        ImageView imageView = findViewById(R.id.imageView);
        imageView.setImageDrawable(animatedVectorDrawableCompat);

        final Animatable animatable = (Animatable) imageView.getDrawable();
        animatable.start();

        Handler handler = new Handler();
        handler.postDelayed(task, 1500);
    }
}

如您所见,主要活动的开始被处理程序延迟。

希望这会有所帮助;我没有用此代码获得白屏;-)