잡다구리/안드로이드
[안드로이드] 스플래시(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" />