잡다구리/안드로이드

[안드로이드] 스플래시(Splash) 만들기

홍루피 2018. 5. 12. 13:06

앱을 키면 로그인이나 메인 창이 뜨기 전에 스플래시 화면이 뜨는 경우가 많다.

티스토리 앱도 스플래시를 갖고 있다 ㅎㅎ 사실 요새 모든 앱들은 스플래시를 갖고 있는 것 같다.

그래서 오늘은 스플래시 만드는 법을 알아보도록 하겠다. 다음에는 모션을 넣는 것도 포스팅 할 예정이당

 

 

 

방법은 2가지가 있다. Thread를 사용하는 방법과 아닌 방법인데 나도 예전까지는 Thread를 사용하다가 시간을 직접 지정해야하는 불편함이 있어서 로딩할때만 뜨는 방법으로 소개하도록 하겠다.

 


1. Drawable에 splash_item.xml 추가

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/splash"/>
</item>

</layer-list>

 

 

 

2. styles.xml에 아래 코드 추가

액션바를 보이지 않게 하기 위해서 NoActionBar 테마를 선택

windowBackground를 위에서 만들어 놓은 splash_item으로 추가해준다.

<!--splash theme-->
<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/splash_item</item>
</style>

 

3. SplashActivity 생성

Splash->Main에서 넘어가게 하기 위해서 intent를 추가한다.

class SplashActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

var intent = Intent(this, MainActivity::class.java)

startActivity(intent)
finish()
}
}

4. AndroidMenifest 변경

theme을 위에서 만들었던 SplashTheme으로 변경

intent는 위의 SplashActivity에서 intent코드를 추가하면 자동으로 추가 됨.

MainActivity보다 SplashActivity가 선행되어 실행되기 때문에 위에 위치하게 해주어야한다.

<activity
android:name=".SplashActivity"
android:theme="@style/SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity" />