본문 바로가기
Android 개발/Android UI

Splash (로딩화면) 화면 만들기 | Android

by Developer88 2017. 6. 18.
반응형

앱을 만들 때, 스플래쉬 화면이 들어가는 경우가 많은데요.

오늘은 스플래쉬 화면을 만드는 방법에 대해서 정리해 보겠습니다.

 

1. Google의 SplashScreen 가이드

구글의 SplashScreen 가이드는 아래의 링크를 보면 되는데요.

https://material.io/guidelines/patterns/launch-screens.html

 

로딩시간이 짧은 앱에 적합하다고 되어 있네요.

SplashScreen은 다음과 같이 두가지로 나누어 지는데요.

  • 로딩전까지 핵심 UI들을 PlaceHolder로서 미리 보여주는 PlaceHolder UI
  • 브랜드를 홍보하기위한 Branded launch screens

아무래도, 두번째인 Branded launch screen의 경우가 많을 것 같습니다.

 

그럼 어떻게 구현하는지 정리해 보겠습니다.

 

2. Splash 구현

Splash화면을 구현하는 방법은 의외로 간단합니다.

Splash화면을 LayerDrawable로 작성해 준 다음,

앱 론칭시 테마의 배경화면을  위에서 작성한 Drawable로 설정해 주고요.

론칭이 되면, MainActivity를 호출해주는 방법을 사용해주면 되는데요.

 

그럼, 하나하나 작성해 보겠습니다.

 

3. LayerDrawable 작성

우선은 Drawable폴더에 xml파일을 생성합니다. 파일이름은 splash.xml로 하였구요.

이 LayerDrawable은 여러가지 드로어블로 구성된 배열을 관리하는 드로어블 객체인데요.

 

Layer-list를 루트로, 각각의 item들이 드로어블을 구성합니다.

Layer라는 이름에서 알수 있듯이, 각각의 드로어블은 계층을 구성하는데요.

가장 나중에 써진 item, 즉 드로어블이 가장 위에 그려집니다.

 

 

 

조금은 생소할 수 있지만, FrameList를 생각하면 쉬운데요.

top, bottom, left, right마진도 사용할 수 있습니다. 

bitmap에 앱의 아이콘들을 불러주면 되구요.

 

이제, 테마를 작성해서, 위에서 만든 layerDrawable을 사용합니다.

 

 

4. Splash Theme 작성

Splash화면을 구성하는 테마를 작성해 주는데요.

기존의 기본 테마를 Parent로 설정해 주시구요.

ActionBar나 Title은 없도록 해 줍니다.

가장 중요한 부분은 windowBackGround를 splash로 해주는 것입니다.

 

 

이제, 이 테마를 사용할 Splash Activity를 생성해 보겠습니다.

 

5. Splash Activity와 Manifest

비어있는 SplashActivity를 생성해 주시구요.
다음과 같이, mainActivity 를 호출해주고, finish()해주도록 합니다.
참고로, 아래에서는 Test용으로 Thread.sleep()을 사용해 주었는데요.
로딩시간이 너무 짧아서, 볼 수 없는 경우가 아닌이상, 실제로 사용할 때는 파란색으로 하이라이트 된 부분만 사용하는 것이 좋습니다.
구글에서도, 짧게 보여주고 넘어가는 것이 좋다고, 가이드 하고 있구요.

 

 

이 후에, 아래와 같이 Manifest를 수정해 주는데요.

이 SplashActivity가 앱 론칭시에 시작되도록, intent-filter를 설정해 줘야 합니다.
마지막으로, theme을 위에서 설정한 Splash테마로 설정해 주면 준비가 다 된 것인데요.

 

 

앱을 실행해 보면, 아래와 같이, 위에서 만든 스플래쉬 화면을 볼 수 있습니다.

 

 

728x90

댓글