메이쁘

[Android] Splash 화면을 위한 가장 효율적이고 쉬운 방법(+ Splash 화면의 존재 이유!) 본문

Technology/Android - Android Studio

[Android] Splash 화면을 위한 가장 효율적이고 쉬운 방법(+ Splash 화면의 존재 이유!)

메이쁘 2020. 6. 20. 23:50

안녕하세요.

 

 

Splash 화면을 가진 앱이 없을정도로 Splash를 사용합니다.

 

혹시 Splash 화면을 사용하는 이유는 아십니까?

 

 

 

크게 두 가지가 있습니다.

 

 

 

 

첫 번째는 

 

 

이 앱의 로고나 이름을 이펙트있게 그림으로 담아 짧은 시간(1초 ~ 2초 내) 에 보여주면서

 

사용자에게 앱 서비스의 이해도와 기대감을 높여주는 용도

 

 

 

 

두 번째는

 

 

단지 짧은 시간 동안 보여주기만 하는 의도가 아니라

 

Splash 화면을 보여주면서 뒤에서는 앱 초기 설정이나 서비스 작동을 진행하여

 

화면 출력 준비를 마칠 경우 Splash 화면을 종료합니다.

 

그래서 사용자가 앱 화면 로딩을 기다리는 데 지루함과 기다림을 느끼지 않도록 하는 용도

 

 

입니다.

 

 

그렇기 때문에, 거의 모든 앱에 존재합니다.

 

여러 앱의 Splash(스플래시) 화면 캡쳐

 

 

 

그럼, 위와 같이 Splash 화면을 만들기 위해 이전까지 여러 방법이 있었습니다.

 

 

  -  SplashActivity 를 만들고, manifest 에서 intent-filter 로 Luncher 설정하기.

  

  -  Glide 라이브러리나 ImageView를 생성하여 거기에 Bitmap을 삽입한 다음, handler의 postDelayed 를 통해 일정 시간 지연시킨 후 다음 액티비티로 넘어가기(또는 메인화면 출력)

 

 

하지만 위 방법은 코드 짜는거나 실행 시 비효율적입니다.

 

 

 

 

그래서 가장 효율성이 높은 다른 방법은 style - Theme 설정  입니다.

 

 

 

그럼, 바로 코드 보여드리겠습니다.

 

 

 

 

 

 

 

  -  파일 경로 : res - values - styles.xml 

 

  -  resource 태그 내 style 태그 생성

 

  -  이 때, parent 는 NoActionBar 로 설정

   *** NoActionBar : 상단의 제목 등 타이틀이 표시되는 부분 출력 X

 

  -  item 태그를 만들고, 태그 안에는 splash 화면으로 출력할(+drawable 폴더에 넣어진) 그림 파일(svg 제외. -> 알아보는중) 의 경로 넣기

 

 

 

 

다음,

 

  -  MainActivity 의 onCreate 함수 내에 application(또는 context).setTheme() 를 통해 위에서 만든 스플래시 테마 적용

 

  -  init() 함수를 통해 메인화면 셋팅

 

  - 세팅 완료되면 다시 AppTheme(기본 테마 또는 사용자 설정 테마) 로 테마 변경

 

 

 

 

 

 

간단하죠?!

 

 

 

 

감사합니다.

 

 

 

 

 

 

Comments