inflearn logo
강의

Course

Instructor

Yoon Jae-seong's Kotlin-based Android App Development Part 4 - Real-world Project

Lesson 22 App2_Splash Screen Implementation

그대로 작성했는데.. 스플래시화면에 로고가 안보입니다

716

hjworld1025

1 asked

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
setTheme(R.style.Theme_MapService) 입력 전에는
MainActivity 테마에 로고가 잘 나오는걸 확인했는데요..
 
setTheme(R.style.Theme_MapService) 입력 후 확인해보면
splash.xml에서 설정한 android:src="@drawable/soft_logo"없이
android:drawable="@color/white"만 보이는데요 무슨문제일까요...
 
 

kotlin android

Answer 2

0

1hee

안녕하세요.

저도 현재 쓰는 핸드폰 기종이 갤럭시 노트 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초정도 주고 로딩하도록 해줬어요.

이 방법으로 했을 때는 스플래시 화면이 보이더라구요!

 

답변이 도움이 되셨길 바래요 ㅎㅎ

 

0

softcampus

안녕하세요 답변이 늦었습니다. 해당 부분은 금일 확인하여 답변을 올리도록 하겠습니다.

감사합니다.

0

yajang12

안드로이드 12 이후로 해당 방법이 적용되지 않는듯 합니다

안드로이드에서 제공하는 방법대로 진행을 해보았지만 background color 조정은 되어도 로고는 나오지 않네요
https://www.masterqna.com/android/101190/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%8A%A4%ED%8A%9C%EB%94%94%EC%98%A4-%EC%8A%A4%ED%94%8C%EB%9E%98%EC%8B%9C-%ED%99%94%EB%A9%B4-%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4-%EB%8F%84%EC%99%80%EC%A3%BC%EC%84%B8%EC%9A%94-%E3%85%9C%E3%85%9C
찾아서 적용해본 방법인데 혹시 해당 회차를 수정해서 재촬영해주실 수 있는지 문의드려봅니다

부하 테스트 시 설정 관련 질문드립니다

1

28

1

kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.

1

71

1

domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다

1

52

1

혹시 강의 내용하면서 실습했던 것을 개인 깃에다 올려도 될까요?

0

25

1

안드로이드 조직 계정 수익 인증 관련

0

47

2

아무도 모르게 책 내시면 모르실 줄 알고!!

1

54

2

Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면

1

82

1

스크립트에 대해 질문 있습니다.

1

60

1

같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!

2

74

1

AdMob 계정 승인이 1개월 이상 지연되고 있습니다. 앱 검토와 순서가 어떻게 되는 건가요

0

107

2

구글 플레이 API 업데이트 관련 문의

0

82

2

예전 로드맵과 현재 강의 순서

0

47

1

소스 코드 좀 올려주세요.

0

54

2

개념과 격벽에 대한 이해를 팀과 공유하고 합의하는 방법

1

90

2

JWT토큰 발급 시, subject 값을 다양하게 넣어서 여러 개의 토큰을 만드는 이유

0

56

2

광고 캠페인 종류와 키워드 플래너 관련 질문

0

102

2

안드로이드 기기 실행 오류

0

72

2

테이블 컬럼에 대한 질문

0

75

1

강의에서 사용된 안드로이드 스튜디오 버전을 알고싶어요.

0

70

2

splash 안되시는 분들 확인해주세요

0

535

1

윤재성의 코틀린 part4 22강 질문이 있습니다.

0

320

1

오류 좀 봐주세요. ':app:debugCompileClasPath';

0

256

2

[9강] DBHelper 클래스를 추가시 오류 발생 이유 좀 알려면 감사하겠습니다.

0

384

1

48강 오류

0

262

1