Splash 화면이란?
앱을 실행하면 앱의 아이콘이나 간단한 이미지가 들어간 화면이 잠깐 뜨는 경우가 있다.
이 화면을 Splash 화면이라 하며, 어떤 앱인지를 나타내거나 앱을 실행하기 위한 준비를 하기 위해 사용하기도 한다.
구현 방법
일반적으로 Splash 화면을 액티비티로 만들어 일정 시간 후 MainActivity를 띄워주는 방법을 많이 사용한다.
이를 위해 app 우클릭 후 new - Activity - Empty Activity 를 눌러 새 Empty Activity를 생성하자.
그리고 원하는 화면으로 layout을 꾸며보자.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SplashActivity"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity" />
</application>
이제 manifest로 가서 intent-filter 내용들을 MainActivity에서 SplashActivity로 옮겨 시작 액티비티를 바꿔주자.
SplashActivity는 TitleBar를 없애주기 위해 NoActionBar 테마를 지정해주었다.
package com.juhy.myapplication;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
public class SplashActivity extends AppCompatActivity {
Handler handler = new Handler();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
}
}, 1000);
}
}
마지막으로 SplashActivity에서 handler.postDelayed() 메소드를 통해 1초 뒤 MainActivity를 호출 후 종료하도록 한다.
MainActivity가 나타나기 전 1초동안 Splash 화면이 나타나는 것을 볼 수 있다.
Reference
[부스트코스]안드로이드 프로그래밍
'Android > Concepts' 카테고리의 다른 글
Page Sliding 구현하기 (0) | 2020.05.08 |
---|---|
Animation 사용법 (0) | 2020.05.07 |
Thread Animation 만들기 (0) | 2020.05.07 |
RecyclerView 사용법 (0) | 2020.05.04 |
MediaRecorder로 Audio 녹음하기 (2) | 2020.05.04 |