그대로 작성했는데.. 스플래시화면에 로고가 안보입니다
안녕하세요. 저도 현재 쓰는 핸드폰 기종이 갤럭시 노트 20 인데요. 아마 OS 버전이 최신인 경우 위와 같은 오류가 발생 하는 것 같아요. 저도 안드로이드 스튜디오 가상머신으로는 잘 되는데, 제 휴대폰은 안되더라구요.(제 안드로이드 가상머신 : Galaxy Nexus API 27) 그리고, 아마 white만 뜨시는 것이 아니라 splash.xml 자체가 로딩이 안되실 것 같습니다. 예제에서 메인 엑티비티에서 잠시 SystemClock으로 시간 텀을 주고 다른 테마로 변경하고 UI요소들을 로딩하잖아요. 그런데, 가상머신 정도의 OS 버전일 때는 SystemClock으로 텀을 주면 drawable의 splash.xml이 적용되는 거 같은데, 최신버전에서는 이게 안되고 그냥 통째로 정지되는 것 같아 보이더라구요 (이건 제 주측이라.. 다른 원인 또는 문제일 수도 있습니다.) 그래서 아래의 두가지 방법으로 스플래시 화면이 안뜨는 것을 해결해봤는데요. 첫째는, 테마로 스플래시화면을 구현하는게 아니라 액티비티로 스플래시 화면 구현하기 (가장 쉬운 대안이지만, 이 방법이 별로다 싶으면 두번째를 추천드려요) 두번째는, splash를 위한 layout.xml을 만들어서 그걸 메인 액티비티에 적용시킨 후, SystemClock 대신 Handler로 시간 텀을 준 뒤 원래 테마와 레이아웃을 로딩하는 방법. (저는 첫번째 하다가 이 두번째가 그나마 원래 강사님의 의도와 가장 비슷하게 구현한것 같아서 이걸로 적용해 봤어요) // 윗부분 생략 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setTheme(R.style.Theme_splash) setContentView(R.layout.layout_splash) Handler(Looper.getMainLooper()).postDelayed({ // Splash 화면 이후로 보여질 원래 테마로 설정 setTheme(R.style.Theme_App1_Memo) setContentView(binding.root) // Toolbar를 설정함. setSupportActionBar(binding.mainToolbar) title = "메모앱" //Recycler View 셋팅 val main_recycler_adapter = MainRecylcerAdapter() binding.memoRecycler.adapter = main_recycler_adapter binding.memoRecycler.layoutManager = LinearLayoutManager(this) }, 1000) } // 아래부분의 onResume() 이런 부분들 생략 여기서 원래 코드와 다른 부분은 onCreate() 밑에 setTheme()와 setContentView() 부분이고요. 사실 setTheme는 굳이 필요 없을 것 같아요. 저는 스플래시에 적용하고 싶은 테마스타일이 있어서 테마도 다시한번 적용시켜 주었습니다. 마지막으로 원래 작성했던 코드들을 전부 복사해서 Handler 안에다가 붙여 넣고 시간 텀은 1초정도 주고 로딩하도록 해줬어요. 이 방법으로 했을 때는 스플래시 화면이 보이더라구요! 답변이 도움이 되셨길 바래요 ㅎㅎ