Android:启动画面实现不起作用

时间:2017-01-14 13:32:42

标签: java android android-xml android-styles

我正在尝试在MainActivity之前实现启动画面,但无法使其正常工作。我按照此处的说明进行操作:https://www.bignerdranch.com/blog/splash-screens-the-right-way/。目前没有任何显示,但黑色延迟屏幕。请告诉我哪里出错了。感谢。

Splash.java

public class Splash extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = new Intent(this, WelcomeActivity.class);
        startActivity(intent);
        finish();
    }
}

background_splash.xml

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

        <item
            android:drawable="@color/colorAccent"/>
        <item>
            <bitmap
                android:gravity="center"
                android:src="@drawable/splash"/>
        </item>

styles.xml

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
        <item name="android:windowBackground">@drawable/background_splash</item>
    </style>

清单

<activity android:name=".Splash"
            android:theme="@style/SplashTheme">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        </activity>

2 个答案:

答案 0 :(得分:2)

简单,卸载&amp;再次安装应用程序,您将获得启动画面。 问题是由于Android Studio中的即时运行

要进行测试,请在开始新活动前暂停:

final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  @Override
  public void run() {
    startActivity();
  }
}, 100);

答案 1 :(得分:0)

super.onCreate(savedInstanceState);以下添加 setContentView(R.layout.layout_name.xml);