[Android]Splash Screen(Launcher Screen)の一番簡単な作り方

アプリを開いたときに、メイン画面が開くまでの間に表示されるこんな感じの画面(Splash ScreenとかLauncher Screenとか言います)を表示させて、見栄えをちょっとよくするための方法です。

 

1.Sprash Screenに表示させるロゴ画像をdrawableフォルダに格納

これは、通常の画像を格納するやり方と同じですので割愛

 

2.Sprash Screen用のxmlファイルをdrawableフォルダに作成

こんな感じで(res => drawable => launcher_screen.xml)

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@color/colorPrimaryDark" /> ← 背景色

    <item>
        <bitmap
            android:gravity="center" ← 画面の真ん中に
            android:src="@drawable/meiso_logo" /> ← ロゴ画像を置く
    </item>

</layer-list>

「layer-list」というのは、複数の画像を1つの画像にまとめてくれる属性らしいです。


 

3.Sprash Screen用のテーマをstyles.xmlに設定

この例では、「AppTheme.Launcher」という名前をつけました。

<style name="AppTheme.Launcher">
    <item name="android:windowBackground">@drawable/launch_screen</item>
</style>

 

4.アプリが開いた時に起動するActivityのstyleを3で設定したものにマニフェストファイルで設定

こんな感じで(17行目)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.minpro.meiso">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:name=".MyApplication">

        <activity
            android:name=".view.MainActivity"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.Launcher" ← コレ
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

 

5.アプリのメイン画面が開いたら、元のテーマに戻すための設定をソースコードで行う

この例の場合は、MainActivityで、superコールの前でsetThemeメソッドを入れます。

class MainActivity : AppCompatActivity(){
        
    override fun onCreate(savedInstanceState: Bundle?) {
        setTheme(R.style.AppTheme)  //superコールの前にスタイル設定(LauncherScreenを入れたので)
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        
    }

 

他にも色々やり方はあるようですが、一番簡単なのはこのやり方のようですね。

超簡単ですので、見栄えをちょっと良くするのに使えるのではないでしょうか。

(詳しい解説を下の動画でしていますので、よろしければご覧ください)

アバター

北川 博之(きーぼー)

みんなのプログラミング by Telulu LLC代表 大阪府生まれ。京都大学経済学部経済学科卒業。 2000年より、日本生命保険、ニッセイアセットマネジメント、パトナム・インベストメンツ(米国)で、日本株トレーダー・アナリスト、経営企画、システム開発等の業務に従事。主に日本株の売買執行・投資分析、経営計画の策定、海外投資家向け日本株営業、社内トレーディングシステム及び経理システムの開発等を行う。 2016年、合同会社てるる設立。スマホアプリプログラマーとして「新感覚脳トレアプリ・記憶戦隊オボエルンジャー」「Meisoー1番シンプルなマインドフルネス瞑想アプリ」をはじめとした、メンタルヘルス・知育系アプリを中心に4タイトル・計8本(Android・iOS)をリリース。 2017年、自身のこれまでの社会人経験・プログラミング経験・子育て経験を基に、プログラミングを通じて人々の人生を豊かにして、未来に希望の持てる明るい社会の実現に貢献したいとの想いから、プログラミング完全初心者と挫折経験のある人を支援する「プログラミング挫折撲滅プロジェクト・みんなのプログラミング by Telulu LLC」を設立し、プログラミングサポーター活動と心理カウンセリング活動を開始。これまでに3,000名を超える方のプログラミング挫折撲滅をサポート。

こんな記事も読まれています

みんプロにかける想い

  1. プログラミングを通じて「やわらかい世の中」を作りたい(ぼくがプログラミング講座をやっている本当の理由②)

  2. プログラミングはみんなのもの!(プログラミングの醍醐味である「楽しさ」を伝えたい)

  3. トランプ政権2期目に起こるIT業界激震予想(前編:スマホの世界の構造問題に荒療治が行われる可能性)

  4. トランプ政権2期目に起こるIT業界激震予想(後編:ブロックチェーンによるインターネットの再民主化が行われる可能性)

  5. こんな無駄な苦労をするのはぼくで最後にしたい(ぼくがプログラミング講座をはじめたわけ)

みんプロ作成アプリ




みんプロ代表の黒歴史


TOP