관리 메뉴

나만을 위한 블로그

[Android] 스플래시 액티비티 만드는 법 본문

Android

[Android] 스플래시 액티비티 만드는 법

참깨빵위에참깨빵_ 2019. 11. 5. 13:17
728x90
반응형

스플래시 액티비티 : 카톡을 실행하면 노란 바탕에 카톡 로고가 잠시 나타난 후 마지막에 켜둔 창(친구, 채팅목록 등)이 나온다.

이 때 카톡 로고가 나오고 잠시 출력됐다 사라지는 화면이 스플래시 액티비티다.

이것을 구현하는 데 필요한 준비물은 스플래시 액티비티로 사용할 이미지뿐이다. 라이브러리는 필요없다.

 

1. 이미지 준비 : 준비한 이미지 파일을 적절한 해상도의 drawable 폴더에 복사해 넣는다.

 

2. 스플래시 드로어블 작성 : drawable에 스플래시 액티비티로 사용할 xml 파일을 만든다.

 

drawable 폴더에 생성한 xml 파일. <bitmap> 안에 src로 @폴더명/파일명을 쓴다. 확장자는 필요없다.

 

3. 테마 생성 : 2번에서 만든 스플래시 드로어블 리소스를 쓰는 액티비티의 style 테마를 만든다.

values/styles.xml 파일에 아래의 내용을 추가한다.

 

styles.xml 파일의 기본 요소 밑에 "SplashTheme"를 추가하고, 액션바를 없애기 위해 NoActionBar를 선언한다. 그리고 2번에서 만든 테마를 선언해 사용할 준비를 끝낸다.

 

4. 스플래시 액티비티 생성 : 이제 지금까지 만든 스플래시 액티비티 테마를 사용하는 스플래시 액티비티를 만든다. 난 Empty Activity를 누르고 별도로 액티비티명을 지정해주면 xml까지 자동으로 생성되서 매니페스트에 <activity>를 추가해줄 필요가 없었다.

이 액티비티에서 필요한 건 메인 액티비티로 넘어가는 인텐트 코드만 있으면 된다. 앱에 따라 초기화 작업이 필요하다면 스플래시 액티비티에서 초기화 작업을 수행하면 되지만, 나는 공부하는 목적으로 사용하는 거니 인텐트 코드만 넣었다.

 

스플래시 액티비티(MainActivity)의 전체 코드. 인텐트 코드와 finish(), try문만 있으면 간단하게 스플래시 액티비티를 구현할 수 있다.

 

인텐트 코드만 넣고 실행해서 스플래시 액티비티(MainActivity)가 끝난 후 메인 액티비티(SubActivity)로 이동하게 하면 짧은 시간만 스플래시 액티비티가 나타났다가 사라진다.

n초동안 출력되게 하고 싶다면 위 코드처럼 try문 안에 sleep()을 걸어서 n초 동안 나왔다가 사라지게 할 수 있다.

그리고 스플래시 액티비티는 더 이상 필요가 없으니 finish()로 죽여서 더 이상 나오지 않도록 했다.

에뮬과 단말에서 테스트한 결과 잘 돌아간다. 하지만 다시 접속했을 때 나오게 하려면 앱을 onDestroy() 상태로 만들어 단말에서 아예 꺼버린 후에 다시 앱을 켜야 나온다.

반응형
Comments