スプラッシュ画面の作り方

数日ぶりの投稿です。
まだまだアプリの仕組みを勉強中の学生プログラマですが、頑張ります！
#スプラッシュ画面の作り方
についてやっていこうと思います。
アプリを作る際に結構重要になるのがこの画面です。
毎回出てきて鬱陶しいけど実際にアプリ名を認知させるのに最適だと思うんですよね。
スマートニュース、グノシー、Twitter、etc...
開くたびにこれが表示されることによって名前を覚えてもらます。
というわけで早速やっていきましょう！！

##手順1 styles.xmlの編集
![image.png](https://qiita-image-store.s3.amazonaws.com/0/240422/7015d4ff-e0c4-6a9c-40a5-42de1f3f84bb.png)
res/values/styles.xmlに新しくスタイルを追加します。今回はSplashThemeとします。
まず最初にstyles.xmlを選択します。

```styles.xml
<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">#EA5E5D</item>
        <item name="colorPrimaryDark">#EA5E5D</item>
        <item name="colorAccent">#EA5E5D</item>
    </style>
<!-- ここから下をコピペしてください。-->
    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

    <style name="SplashTheme" parent="AppTheme">
        <item name="android:windowBackground">@mipmap/imageview</item>
    </style>
</resources>
```






##手順2 Manifestファイルの編集
先ほど設定したスタイルを追加します。

```AndroidManifest.xml
<application
        android:allowBackup="true"
        android:icon="@mipmap/i_topics_icon"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/i_topics_icon"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
<!--ここから下を追加してください。-->
        <activity android:name=".MainActivity"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
```

```
<activity android:name=".MainActivity"
            android:theme="@style/SplashTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
```
ここを必ず追加してください。
splash画面は一度だけ表示させていのでapplicationのthemeとはまた別にthemeを用意してください。
自分はそれをしてなくて非常に苦労しました笑
##手順3 Activityの編集
```MainActivity.java
package android.wings.websarva.com.splash;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
//ここから追加
        try {
            Thread.sleep(2000);

        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        setTheme(R.style.AppTheme);
// ここまで
        setContentView(R.layout.activity_main);

    }
}
```

これで追加できました。
Threadクラスで用意されているsleepを使うことで指定した時間だけスレッドを一時停止させることが出来ます。
今回は2秒止めたいのでthread.sleep(2000)とセットします。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/240422/e2a6a9ae-2a13-a812-3e76-5141851f58fd.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/240422/aa84ef66-6d5a-8c74-5101-19148ed0a3d5.png)

こんな感じで画面が切り替わると思います。

参考にさせていただいた記事
https://qiita.com/yamikoo@github/items/c82ea335968709a9d32a
とても分かり易かったです。ありがとうございました。