안드로이드 스튜디오로 스플래시 스크린 만들기를 찾아보면 엑티비티를 만들어서 화면을 일정시간 띄웠다가 없어지도록 구현해놓은 것들이 많이 있다
이 방법은 정보전달이나 특별한 목적이 있지 않는 한 메인엑티비티 실행을 늦출 뿐 메인엑티비티가 실행될 때 까지 띄우려는 나의 의도에는 적합하지 않았다
여기까지 알게되는 과정이 혼란스러웠지만 방법을 알고나니 생각보다 간단하다는 생각이 들었다
아래 공식문서를 참고해서 코드를 작성했다
https://developer.android.com/develop/ui/views/launch/splash-screen/migrate?hl=ko
스플래시 화면 구현을 Android 12 이상으로 이전 | Views | Android Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 스플래시 화면 구현을 Android 12 이상으로 이전 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 11
developer.android.com
공식문서를보면 SplashScreen API를 쓰면 된다고 나와있다
SplashScreen API를 사용하기 위해서 build.gradle(Module:app)파일에 라이브러리를 추가한다
// 스플래시 API호출
implementation("androidx.core:core-splashscreen:1.0.0")
그 다음 themes.xml에서 SplashScreen 테마를 만들어 준다
<!-- SAVVY_Android.Splas는 테마 이름이라서 변경가능.-->
<style name="Theme.SAVVY_Android.Splash" parent="Theme.SplashScreen">
<!-- Splash Screen 의 Background 색상.-->
<item name="windowSplashScreenBackground">@color/white</item>
<!-- Splash Screen 에서 사용 될 아이콘. 설정 하지 않으면 앱 아이콘 사용. -->
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_launcher_foreground</item>
<!-- Splash Screen 이 끝난 후 보일 화면의 테마-->
<item name="postSplashScreenTheme">@style/Base.Theme.NiceGetup</item>
</style>
이후 manifest에 테마를 적용해준다
마지막으로 앱의 모든 activity의 onCreate안에 splash screen관리함수를 적용해주어야 한다
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// splash screen 설정, 관리 API함수
installSplashScreen()
binding = ActivityMainBinding.inflate(layoutInflater)
enableEdgeToEdge()
안드로이드 공식문서를 참고하는게 가장 확실하고 좋은 방법이지만 공식문서가 익숙하지 않은 어려움이 많았다
공식문서와 좀 더 친해질 필요성이 있다
스크롤 최상단으로 이동시키는 플로팅 액션 버튼 만들기 (0) | 2024.06.12 |
---|---|
안드로이드 스튜디오 텍스트 입력 후 키보드 숨기기 (0) | 2024.06.10 |
안드로이드 스튜디오 Activity 생명 주기 (0) | 2024.06.07 |
안드로이드 스튜디오 - BMI계산기 결과페이지 만들기 (0) | 2024.01.30 |
안드로이드 스튜디오 - BMI계산기 메인페이지 만들기 (0) | 2024.01.29 |