Android(Kotlin)

android 12 splash

----___<<<<< 2022. 5. 15. 12:03

 

Android Splash 화면에 대한 내용입니다.

 

 

스플래시 화면 작동 방식

사용자가 앱을 실행할 때 앱 프로세스가 실행되지 않거나(콜드 스타트) 활동이 만들어지지 않은 상태(웜 스타트)라면 다음 이벤트가 발생합니다. 스플래시 화면은 핫 스타트 중에 표시되지 않습니다.

  1. 시스템은 개발자가 정의한 테마와 애니메이션을 사용하여 스플래시 화면을 표시합니다.
  2. 앱이 준비되면 스플래시 화면이 닫히고 앱이 표시됩니다.

 

 그니깐 앱 로딩이 완료될 때 까지 스플래시를 보여주는 방식인데 themes.xml에 아래와 같이 작성해줍니다.

 

<resources xmlns:tools="http://schemas.android.com/tools">
    <!-- Base application theme. -->
    <style name="Theme.Jetpack_Ex" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
        <!-- Primary brand color. -->
        <item name="colorPrimary">@color/purple_500</item>
        <item name="colorPrimaryVariant">@color/purple_700</item>
        <item name="colorOnPrimary">@color/white</item>
        <!-- Secondary brand color. -->
        <item name="colorSecondary">@color/teal_200</item>
        <item name="colorSecondaryVariant">@color/teal_700</item>
        <item name="colorOnSecondary">@color/black</item>
        <!-- Status bar color. -->
        <item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
        <!-- Customize your theme here. -->
    </style>

    <style name="Theme.Jetpack_Exs.ss" parent="Theme.SplashScreen">
        <item name="windowSplashScreenBackground">@color/purple_200</item>
        <item name="windowSplashScreenAnimatedIcon">@drawable/test</item>
        <item name="postSplashScreenTheme">@style/Theme.Jetpack_Ex</item>
    </style>
</resources>

 

build.gradle에 추가해주고

 

implementation 'androidx.core:core-splashscreen:1.0.0-beta02'

 

 Menifest에서 만든 테마 적용해주고

 

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

    <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/Theme.Jetpack_Ex">
        <activity
            android:name=".MainActivity"
            android:theme="@style/Theme.Jetpack_Exs.ss"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

</manifest>

 

MainActivity에서 아래와 같이 적용 끝.

 

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        installSplashScreen()
        Thread.sleep(2000)

        setContentView(R.layout.activity_main)


    }
}

 

 

 

 

 

 

- 참조 

 

https://developer.android.google.cn/about/versions/12/features/splash-screen?hl=ko 

 

스플래시 화면  |  Android 12  |  Android Developers

Android 12에서는 모든 앱에 새로운 앱 실행 애니메이션을 사용 설정하는 SplashScreen API를 추가합니다. 여기에는 실행 시 앱 내 모션, 앱 아이콘을 보여주는 스플래시 화면, 앱 자체로의 전환이 포함

developer.android.google.cn

 

'Android(Kotlin)' 카테고리의 다른 글

SharedPreferences / EncryptedSharedPreferences  (0) 2022.07.26
Android Lottie  (0) 2022.05.16
SaveFile Android kotlin  (0) 2022.05.02
Android REQUEST_IGNORE_BATTERY_OPTIMIZATIONS  (0) 2022.04.29
기존 Retrofit Callback 계속 붙이면?  (0) 2022.04.13