- masatoshi
- Mar 8, 2018
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リスナーつけたりしたらタップの遷移もできるかと思います。
以上、スプラッシュの作成方法でした。
Comments
Add your comment