Theme 을 이용한 Splash 화면

h_hi·2021년 3월 19일
0

android

목록 보기
5/6

메인액티비티가 실행되기 전까지 로딩화면을 보여주는 splash 화면을 효율적으로 적용해 보았습니다.
메인액티비티에 Splash Theme 을 적용하고, 메인액티비티가 생성되면 Theme 을 전체 프로젝트의 AppTheme 으로 변경하였습니다.

background_splahs.xml 생성

drawable 폴더 내에 splash 화면을 생성합니다.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <bitmap android:src="@drawable/intropage"
            android:gravity="center"/>
    </item>
</layer-list>

SplashTheme 생성

values 폴더 내 themes 파일에 splash 를 위한 style 을 생성합니다.

<!--Splash theme -->
    <style name="SplashTheme" parent="Theme.MaterialComponents.DayNight.NoActionBar">
        <item name="android:windowBackground">@drawable/background_splash</item>
    </style>

MainActivity 에 Theme 적용

AndroidManifest 파일 내에 MainActivity 에 theme 을 적용합니다.

<activity android:name=".view.main.MainActivity"
            android:theme="@style/SplashTheme">

MainActivity 생성 후 원래 Theme 으로 변경

MainActivity 의 onCreate 내에 setTheme 함수를 이용하여 원래의 theme 으로 변경시켜 줍니다. super.onCreate(savedInstance) 가 호출되기 전에 setTheme 함수를 적용합니다.

 override fun onCreate(savedInstanceState: Bundle?) {
        setTheme(R.style.TripProjectTheme)
        super.onCreate(savedInstanceState)
    }

Reference

https://velog.io/@pish11010/Android-Splash-Screen-구현
https://holika.tistory.com/entry/내-맘대로-정리한-안드로이드-스플래시Splash-화면은-어떻게-만들어야-효율적으로-활용할-수-있을까

profile
안드로이드, flutter 개발자

0개의 댓글