仕事でandroidアプリにスプラッシュ画面を作ることになった。
割と簡単だったので、ここに記す
1949 views
最初に、スプラッシュ画面用にActivityを作成します。
スプラッシュ画面の実装に必要なファイルを追加するため
「空のアクティビティー」を選択。クリックする
アクティビティ名を入力する(本書では、仮に「SplashActivity」とします)
次に、作成したActivityの中身を編集します。
スプラッシュ画面の実装に必要な処理を記述するため
package com.konishisoft.splashsample
import android.content.Intent
import android.os.Bundle
import android.os.Handler
import androidx.appcompat.app.AppCompatActivity
class SplashActivity : AppCompatActivity() {
val handler = Handler()
val spHandler = SplashHandler()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_splash)
}
override fun onResume() {
super.onResume()
//2000ミリ秒遅れて、「spHandler」を実行させる
handler.postDelayed(spHandler, 2000)
}
override fun onStop() {
super.onStop()
intent = null
handler.removeCallbacks(spHandler)
}
//スプラッシュ画面からスタート画面に遷移するためのクラス
inner class SplashHandler : Runnable {
override fun run() {
//画面遷移
intent = Intent(this@SplashActivity, MainActivity::class.java)
startActivity(intent)
//アクティビティを破棄する
this@SplashActivity.finish()
}
}
}
スプラッシュ画面にて、表示する画像を保存します。
※画像が保存済の場合は、スキップ可です。
スプラッシュ画面で表示する画面を保存するため。
続いて、Activity作成と同時に作成された「layout」ファイルを編集します。
スプラッシュ画面で画像を表示するため。
次に、stylesファイルを編集します。
スプラッシュ画面で、画面上部のバーを非表示にする設定を作成するため。
2.「styles.xml」に 以下のコードを書く。
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<!-- この下のコードを書いてください-->
<style name="TestTheme" parent = "Theme.AppCompat.Light.DarkActionBar">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
最後に、マニュフェストファイルを書き換えます。
アプリのスタート画面をスプラッシュ画面に設定するため。
スプラッシュ画面の上部にバーを非表示にする設定を反映するため
<!-- ここから下に変更箇所あり -->
<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">
<!-- 下記にMainActivityの記述をすること-->
<activity android:name=".MainActivity"></activity>
<!-- 下記をSplashActivityにする -->
<!-- さらに下記に「android:theme = ~」を記述。stylesファイルの設定を反映できる-->
<activity android:name=".SplashActivity"
android:theme="@style/TestTheme" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Page 4 of 5.
owl
駆け出しエンジニア
だいたいweb系をかじってる
最近ちょとブロックチェーンに興味出てきた