AndroidStudio・スプラッシュ画面を作って見た

一定時間経つと自動的に移動するアクティビティを作る

Androidにはスプラッシュが用意されていない

アプリを起動するとき、最初に会社のロゴが表示されたりしますよね?

あれを通称、スプラッシュ画面と言います。

 

ios アプリを作る時って最初からスプッラシュがあったので気にしてなかったんですが、

アンドロイドの場合、どうやら自分で作らないといけないみたいです。

 

その時に使った方法を紹介しますね。

 

スプラッシュアクティビティの作成

 

プロジェクトを作成する所は端折らせてもらいますw

appのところで右クリック

New → Activity → EmptyActivity を選択

クラス名を決めます

今回は『 SplashActivity 』にしました。

Finish を押すと自動的にアクティビティが作られます。

マニフェストを変更する

 

手順は簡単です

// ① と ② のクラス名を入れ替える
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="パッケージ名">

    <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">
        <activity android:name=".MainActivity"> //①
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

①の部分が最初の起動時に出てくる画面で

②の部分はこのアプリ内にあるアクティビティです。

これでとりあえずスプラッシュ画面を表示できました。

 

メインに遷移させる方法

 

いくつかやり方はありますが、run と Intent を使った方法が一番簡単じゃないでしょうか?

public class SplashActivity extends AppCompatActivity {

    private Handler handler;
    private SplashHandler spHandler;

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

    @Override
    protected void onResume() {
        super.onResume();

        // 2秒後に設定する
        handler = new Handler();
        spHandler = new SplashHandler();
        handler.postDelayed(spHandler, 2000);
    }

    @Override
    protected void onStop() {
        super.onStop();

        intent = null;
        handler.removeCallbacks(spHandler);
    }

    // 一定時間後にスプラッシュ画面からスタート画面に自動遷移するためのサブクラス
    class SplashHandler implements Runnable {
        @Override
        public void run() {
            //画面遷移処理
            intent = new Intent(SplashActivity.this, MainActivity.class);
            startActivity(intent);
            SplashActivity.this.finish();       //アクティビティを破棄。
        }
    }
}

2000は時間ですね、ここの時間を操作するとスプラッシュで待機する時間が変わります。

 

これでMainに自動で遷移するスプラッシュ画面ができました。

あとはお好みで、Touchリスナーつけたりしたらタップの遷移もできるかと思います。

 

以上、スプラッシュの作成方法でした。

記事のサブ画像




コメント

コメントを追加

user-symbol

Stay in touch

ビジネスおよび開発者向けの実用的な最新情報をご希望ですか?

ソースコードプロジェクトに対するPieceXコミュニティのニーズについてご提供します。

PieceXの最新の無料コミュニティコードプロジェクトをいち早くお知らせします。